package a.f.f;

import a.c.ab;
import a.c.bb;
import a.c.*;
import a.c.v;
import a.c.y;
import a.c.z;
import a.d.s;
import a.d.t;
import a.d.u;
import a.f.*;
import a.f.o;
import a.f.r;
import a.i.db;
import a.i.p;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.*;

import a.d.u;
import a.d.t;
import a.d.s;
import a.i.p;

public class a
  extends r
{
  public static final Object g = "y.layout.multipage.MultiPageLayouter.NODE_CLUSTER_ID_DPKEY";
  public static final Object h = "y.layout.multipage.MultiPageLayouter.NODE_ID_DPKEY";
  public static final Object i = "y.layout.multipage.MultiPageLayouter.EDGE_ID_DPKEY";
  public static final Object j = "y.layout.multipage.MultiPageLayouter.EDGE_LABEL_ID_DPKEY";
  public static final Object k = "y.layout.multipage.MultiPageLayouter.NODE_LABEL_ID_DPKEY";
  public static final Object l = "y.layout.multipage.MultiPageLayouter.EDGE_TYPE_DPKEY";
  public static final byte m = 0;
  public static final byte n = 1;
  public static final byte o = 2;
  public static final byte p = 1;
  public static final byte q = 2;
  public static final byte r = 4;
  private static final HashSet s = new HashSet();
  private static final double t = 50.0D;
  private s u;
  private long v;
  private byte w;
  private boolean x;
  private int y;
  private boolean z;
  private vc A = new a.f.e.c();
  private boolean B;
  private e C;
  private g D;
  private long E;
  private ArrayList F;
  private o G;
  private h H;
  private HashMap I;
  private HashSet J;
  private HashMap K;
  private HashMap L;
  private HashMap M;
  private static final int N = 100;
  private static final int O = 100;
  private static final int P = 200;
  public static boolean Q;
  public static boolean R;
  
  public a(rc paramrc)
  {
    super(paramrc);
    ((a.f.e.c)this.A).f(false);
    this.u = new s(1000.0D, 1000.0D);
    this.v = 9223372036854775807L;
    this.w = 2;
    this.B = true;
  }
  
  public boolean b()
  {
    return this.z;
  }
  
  public void a(boolean paramBoolean)
  {
    this.z = paramBoolean;
  }
  
  protected e c()
  {
    return new b();
  }
  
  public e d()
  {
    if (!R) {
      if (this.C == null) {
        this.C = c();
      }
    }
    return this.C;
  }
  
  public void a(e parame)
  {
    this.C = parame;
  }
  
  public g e()
  {
    return this.D;
  }
  
  public void a(g paramg)
  {
    this.D = paramg;
  }
  
  public int f()
  {
    return this.y;
  }
  
  public void a(int paramInt)
  {
    this.y = paramInt;
  }
  
  public byte g()
  {
    return this.w;
  }
  
  public void a(byte paramByte)
  {
    this.w = paramByte;
  }
  
  public long h()
  {
    return this.v;
  }
  
  public void a(long paramLong)
  {
    this.v = paramLong;
  }
  
  public vc i()
  {
    return this.A;
  }
  
  public void a(vc paramvc)
  {
    this.A = paramvc;
  }
  
  private void c(o paramo)
  {
    this.E = System.currentTimeMillis();
    this.G = paramo;
    this.H = new h(paramo, this);
    this.J = new HashSet();
    this.F = new ArrayList();
    this.K = new HashMap();
    o();
  }
  
  private void j()
  {
    boolean bool = R;
    if (!bool) {
      if (q()) {
        a(this.F, (p() * 0.7D), false, true, 2);
      }
    }
    if ((bool) || (q())) {
      a(6, (p() * 0.5D));
    }
  }
  
  private void k()
  {
    boolean bool = R;
    if (!bool) {
      if (q()) {
        a(true, this.F);
      }
    }
    if (!bool) {
      if (q()) {
        a(this.F);
      }
    }
    if ((bool) || (q())) {
      a(this.F, p());
    }
  }
  
  private a.c.d a(o paramo, a.c.e parame1, a.c.e parame2, a.c.d paramd, boolean paramBoolean)
  {
    this.H.a(paramo);
    Object localObject = this.H.a(paramd).a();
    a.c.d locald = d().a(this.H, parame1, parame2, localObject, paramBoolean);
    this.H.a(locald, new g_(locald, locald, localObject, this.H));
    this.H.c(locald, locald);
    return locald;
  }
  
  private a.c.e a(o paramo, ab paramab, a.c.e parame)
  {
    this.H.a(paramo);
    Object localObject = this.H.c(parame);
    a.c.e locale = d().a(this.H, a(paramab), localObject);
    k_ localk_ = new k_(paramab.m());
    this.H.a(locale, new i_(locale, locale, localk_, localObject, this.H));
    this.H.c(locale, locale);
    return locale;
  }
  
  private z a(ab paramab)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    z localz = new z();
    m localm = paramab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      c localc = this.H.a(localm.a());
      if (!bool2)
      {
        if (bool1) {
          break label81;
        }
        localz.add(localc.a());
        localm.f();
      }
    } while (!bool1);
    label81:
    return localz;
  }
  
  private a.c.e a(o paramo, a.c.e parame)
  {
    this.H.a(paramo);
    i_ locali_1 = (i_)this.H.a(parame);
    a.c.e locale = d().b(this.H, locali_1.l);
    if (!R) {}
    Object localObject = locali_1.c() == 0 ? locali_1.d() : locali_1.l;
    i_ locali_2 = new i_(locale, locale, null, localObject, (byte)2, this.H);
    this.H.a(locale, locali_2);
    this.H.c(locale, locale);
    return locale;
  }
  
  private a.c.e b(o paramo, a.c.e parame)
  {
    a.c.e locale = paramo.i();
    paramo.b(locale, 30.0D, 30.0D);
    Object localObject = this.H.c(parame);
    this.H.a(locale, new i_(locale, locale, localObject, this.H));
    this.H.c(locale, locale);
    return locale;
  }
  
  private a.c.d a(o paramo, a.c.e parame1, a.c.e parame2, a.c.e parame3)
  {
    this.H.a(paramo);
    Object localObject = this.H.c(parame3);
    a.c.d locald = d().a(this.H, parame1, parame2, localObject);
    this.H.a(locald, new g_(locald, locald, (byte)2, this.H));
    this.H.c(locald, locald);
    return locald;
  }
  
  private a.c.d a(o paramo, a.c.e parame1, a.c.e parame2, a.c.d paramd, a.c.e parame3)
  {
    this.H.a(paramo);
    c localc = this.H.a(paramd);
    Object localObject = this.H.c(parame3);
    a.c.d locald = d().a(this.H, parame1, parame2, localc.a(), localObject);
    this.H.a(locald, new g_(locald, localc));
    this.H.c(locald, locald);
    return locald;
  }
  
  private a.c.e c(o paramo, a.c.e parame)
  {
    this.H.a(paramo);
    Object localObject = this.H.c(parame);
    a.c.e locale = d().a(this.H, localObject);
    this.H.a(locale, new i_(locale, locale, localObject, (byte)3, this.H));
    this.H.c(locale, locale);
    i_ locali_ = (i_)this.H.a(parame);
    locali_.i = locale;
    return locale;
  }
  
  static void a(a.c.d paramd1, a.c.d paramd2, h paramh)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    wb[] arrayOfwb = ((o)paramd1.c()).g(paramd1);
    if ((bool2) || (arrayOfwb != null))
    {
      if (bool2) {
        break label43;
      }
      if (arrayOfwb.length != 0) {}
    }
    else
    {
      return;
    }
    label43:
    int i1 = 0;
    do
    {
      if (i1 >= arrayOfwb.length) {
        break;
      }
      mc localmc = new mc();
      localmc.a(arrayOfwb[i1].d());
      localmc.a(arrayOfwb[i1].e());
      localmc.a(arrayOfwb[i1].a());
      localmc.a(arrayOfwb[i1].b());
      d locald = paramh.a(arrayOfwb[i1]);
      if (!bool2)
      {
        if (locald != null) {
          paramh.a(localmc, new f_(localmc, locald));
        }
        paramh.a(localmc, paramd2);
        i1++;
      }
    } while (!bool1);
  }
  
  public void doLayout(o paramo)
  {
    i locali = d(paramo);
    g localg = e();
    if ((R) || (localg != null)) {
      localg.a(locali);
    }
  }
  
  public i d(o paramo)
  {
    boolean bool = R;
    if (!bool) {
      if (paramo.c(h) == null) {
        throw new IllegalArgumentException("DataProvider NODE_ID_DPKEY is not registered!");
      }
    }
    if (!bool) {
      if (paramo.c(i) == null) {
        throw new IllegalArgumentException("DataProvider EDGE_ID_DPKEY is not registered!");
      }
    }
    if (!bool)
    {
      if (paramo.c(k) == null) {
        throw new IllegalArgumentException("DataProvider NODE_LABEL_ID_DPKEY is not registered!");
      }
      if (bool) {}
    }
    else if (paramo.c(j) == null)
    {
      throw new IllegalArgumentException("DataProvider EDGE_LABEL_ID_DPKEY is not registered!");
    }
    if (paramo.n()) {
      return new i();
    }
    c(paramo);
    m();
    j();
    k();
    l();
    i locali = new i(this.F, this.H);
    this.F = null;
    this.H = null;
    return locali;
  }
  
  private void l()
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    ArrayList localArrayList = new ArrayList();
    int i1 = 0;
    label277:
    label347:
    label352:
    do
    {
      if (i1 >= this.F.size()) {
        break;
      }
      o localo;
      Object localObject2;
      do
      {
        Object localObject3;
        do
        {
          do
          {
            localo = (o)this.F.get(i1);
            if (bool2) {
              return;
            }
            if (bool1) {
              break label466;
            }
            if (bool2) {
              break label352;
            }
            if (!this.J.contains(localo)) {
              break label347;
            }
            localObject1 = p(localo);
            b(localo, (o)localObject1);
            n((o)localObject1);
            if (bool2) {
              break label277;
            }
            if (!f((o)localObject1)) {
              break;
            }
            localArrayList.add(localObject1);
            localObject2 = ((o)localObject1).v();
            do
            {
              if (!((a.c.w)localObject2).e()) {
                break;
              }
              localObject3 = (i_)this.H.a(((a.c.w)localObject2).d());
              this.H.c(((i_)localObject3).g, ((i_)localObject3).d());
              ((i_)localObject3).k = i1;
              ((a.c.w)localObject2).f();
              if (bool2) {
                break label432;
              }
              if (bool1) {
                break label430;
              }
            } while (!bool1);
          } while (bool2);
          localObject2 = ((o)localObject1).w();
          do
          {
            if (!((m)localObject2).e()) {
              break;
            }
            localObject3 = (g_)this.H.a(((m)localObject2).a());
            this.H.c(((g_)localObject3).f, ((g_)localObject3).a());
            ((m)localObject2).f();
            if (bool2) {
              break label432;
            }
            if (bool1) {
              break label430;
            }
          } while (!bool1);
          localArrayList.add(localo);
        } while (bool2);
        localObject2 = localo.v();
        do
        {
          if (!((a.c.w)localObject2).e()) {
            break;
          }
          localObject3 = (i_)this.H.a(((a.c.w)localObject2).d());
          ((i_)localObject3).k = i1;
          ((a.c.w)localObject2).f();
          if (bool2) {
            break label432;
          }
          if (bool1) {
            break label430;
          }
        } while (!bool1);
        localArrayList.add(localo);
      } while (bool2);
      Object localObject1 = localo.v();
      do
      {
        if (!((a.c.w)localObject1).e()) {
          break;
        }
        localObject2 = (i_)this.H.a(((a.c.w)localObject1).d());
        ((i_)localObject2).k = i1;
        ((a.c.w)localObject1).f();
        if (bool2) {
          break label432;
        }
        if (bool1) {
          break label430;
        }
      } while (!bool1);
      if (!bool2) {
        i1++;
      }
    } while (!bool1);
    label430:
    label432:
    this.F = localArrayList;
    this.I = null;
    this.J = null;
    this.K = null;
    this.L = null;
    if (!bool2) {
      label466:
      this.M = null;
    }
  }
  
  private void e(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (a.f.c.h.b(paramo))
    {
      a.f.c.h localh = new a.f.c.h(paramo);
      a.c.w localw = paramo.v();
      do
      {
        if (!localw.e()) {
          break;
        }
        a.c.e locale = localw.d();
        if (bool1) {
          break label107;
        }
        if (!bool2)
        {
          if (localh.e(locale))
          {
            if (bool2) {
              continue;
            }
            if (localh.c(locale).isEmpty()) {
              paramo.a(locale);
            }
          }
          localw.f();
        }
      } while (!bool1);
      if (!bool2) {
        label107:
        localh.e();
      }
    }
  }
  
  private void a(ArrayList paramArrayList, long paramLong)
  {
    boolean bool3 = R;
    boolean bool2 = Q;
    long l1 = System.currentTimeMillis();
    a.c.x localx = db.a();
    int i1 = 0;
    label217:
    label249:
    do
    {
      if (i1 >= paramArrayList.size()) {
        break;
      }
      o localo = (o)paramArrayList.get(i1);
      int i2 = 0;
      a.c.w localw = new bb(localo.v()).l();
      do
      {
        do
        {
          if (!localw.e()) {
            break label249;
          }
          a.c.e locale1 = localw.d();
          i_ locali_ = (i_)this.H.a(locale1);
          if (bool2) {
            break;
          }
          if (locali_.c() == 4)
          {
            a.c.e locale2 = this.H.d(locali_.i);
            if (!bool3)
            {
              if (localx.getInt(locale2) == i1 + 1)
              {
                this.H.a(localo);
                boolean bool1 = a(locale2, locale1, a(locale1), this.H);
                if (bool3) {
                  break label217;
                }
                if (bool1)
                {
                  this.J.add(localo);
                  i2 = 1;
                }
              }
              localx.a(locale1, i1 + 1);
            }
            if (bool3) {
              continue;
            }
            if (!a(l1, paramLong))
            {
              if (i2 != 0) {
                e(localo);
              }
              return;
            }
          }
          localw.f();
        } while (!bool2);
      } while (bool3);
      if (!bool3)
      {
        if (i2 != 0) {
          e(localo);
        }
        i1++;
      }
    } while (!bool2);
  }
  
  private z a(a.c.e parame)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    z localz = new z();
    m localm = parame.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      g_ localg_ = (g_)this.H.a(localm.a());
      if (!bool2)
      {
        if (bool1) {
          break label82;
        }
        localz.add(localg_.h);
        localm.f();
      }
    } while (!bool1);
    label82:
    return localz;
  }
  
  protected boolean a(a.c.e parame1, a.c.e parame2, z paramz, h paramh)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    o localo = paramh.a();
    ab localab = a(parame1, parame2, localo, true);
    HashSet localHashSet = new HashSet(localab);
    Rectangle2D localRectangle2D = a(localo, null, new p()
    {
      private final HashSet val$edgesToRoute;
      
      public boolean getBool(Object paramAnonymousObject)
      {
        return this.val$edgesToRoute.contains(paramAnonymousObject);
      }
    });
    a.d.w localw = new a.d.w(localRectangle2D.getCenterX(), localRectangle2D.getCenterY());
    t localt = new t(localw.a - this.u.a * 0.5D, localw.b - this.u.b * 0.5D, this.u.a, this.u.b);
    p local16 = new p()
    {
      private final HashSet val$edgesToRoute;
      
      public boolean getBool(Object paramAnonymousObject)
      {
        return this.val$edgesToRoute.contains(paramAnonymousObject);
      }
    };
    this.H.a(localo);
    a(localo, local16, localt);
    if ((bool2) || (a.c.q.n))
    {
      if (!bool2) {}
      Q = !bool1;
    }
    if (a.c.q.o) {
      R = !bool2;
    }
    return true;
  }
  
  private boolean f(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    int i1 = 0;
    int i2 = 0;
    Object localObject = paramo.v();
    do
    {
      do
      {
        if (!((a.c.w)localObject).e()) {
          break;
        }
        if (bool1) {
          break label113;
        }
        if (i1 > 3) {
          break;
        }
        j localj = this.H.a(((a.c.w)localObject).d());
        if (!bool2)
        {
          if (localj.c() != 1)
          {
            i1++;
            if (bool2) {
              continue;
            }
            if (localj.c() == 3) {
              i2++;
            }
          }
          ((a.c.w)localObject).f();
        }
      } while (!bool1);
    } while (bool2);
    if (i1 > 2) {
      label113:
      if (((!bool2) && (i1 != 3)) || ((!bool2) && (i2 <= 0))) {}
    } else {
      return true;
    }
    localObject = wc.a(paramo, paramo.v(), paramo.w(), true);
    this.K.put(paramo, localObject);
    if ((bool2) || (((Rectangle2D)localObject).getWidth() <= this.u.a)) {
      if (bool2) {}
    }
    return ((Rectangle2D)localObject).getHeight() <= this.u.b;
  }
  
  private void a(ArrayList paramArrayList)
  {
    a(false, 0.8D, 0.8D, paramArrayList);
    a(true, 0.8D, 0.8D, paramArrayList);
    a(false, 0.8D, 0.0D, paramArrayList);
    a(true, 0.8D, 0.0D, paramArrayList);
  }
  
  private void a(boolean paramBoolean, ArrayList paramArrayList)
  {
    a(false, 0.8D, 0.0D, paramBoolean, paramArrayList);
    a(true, 0.8D, 0.0D, paramBoolean, paramArrayList);
  }
  
  private void a(boolean paramBoolean1, double paramDouble1, double paramDouble2, boolean paramBoolean2, ArrayList paramArrayList)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    ArrayList localArrayList1 = a(paramBoolean1, paramDouble1, paramArrayList);
    HashSet localHashSet = new HashSet(localArrayList1);
    int i1 = 1;
    label35:
    if (i1 != 0)
    {
      break label60;
      if (!bool2)
      {
        if (localArrayList1.isEmpty()) {
          break label252;
        }
        i1 = 0;
      }
    }
    label60:
    label110:
    label252:
    while (bool2)
    {
      int i2 = 0;
      do
      {
        if (i1 != 0) {
          break label221;
        }
        if (bool1) {
          break;
        }
        do
        {
          if (i2 >= localArrayList1.size() - 1) {
            break;
          }
          break label110;
          o localo1 = (o)localArrayList1.get(i2);
          ArrayList localArrayList2 = a(localo1, paramBoolean1, localHashSet, paramBoolean2);
          int i3 = 0;
          do
          {
            if (i1 != 0) {
              break label208;
            }
            if (bool1) {
              break;
            }
            if (i3 >= localArrayList2.size()) {
              break label208;
            }
            o localo2 = (o)localArrayList2.get(i3);
            o localo3 = a(localo1, localo2, paramBoolean1, paramDouble2);
            if (!bool2)
            {
              if (localo3 != null)
              {
                a(localo1, paramArrayList);
                a(localo2, paramArrayList);
                paramArrayList.add(localo3);
                this.J.add(localo3);
                i1 = 1;
              }
              i3++;
            }
          } while (!bool1);
          i2++;
        } while (bool2);
      } while (!bool1);
      localArrayList1 = a(paramBoolean1, paramDouble1, paramArrayList);
      localHashSet = new HashSet(localArrayList1);
      if (bool2) {
        break label35;
      }
      if (!bool1) {
        break;
      }
    }
    label208:
    label221:
    return;
  }
  
  private void a(o paramo, ArrayList paramArrayList)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Object localObject1 = paramo.v();
    Object localObject2;
    Object localObject3;
    int i1;
    label112:
    label114:
    do
    {
      do
      {
        if (!((a.c.w)localObject1).e()) {
          break label117;
        }
        localObject2 = ((a.c.w)localObject1).d();
        this.H.a(((a.c.w)localObject1).d(), null);
        if (bool1) {
          break label118;
        }
        localObject3 = paramo.f(localObject2);
        i1 = 0;
        do
        {
          if (i1 >= localObject3.length) {
            break;
          }
          this.H.a(localObject3[i1], null);
          i1++;
          if (bool2) {
            break label114;
          }
          if (bool1) {
            break label112;
          }
        } while (!bool1);
      } while (bool2);
      ((a.c.w)localObject1).f();
    } while (!bool1);
    label117:
    label118:
    localObject1 = paramo.w();
    label220:
    label222:
    do
    {
      do
      {
        if (!((m)localObject1).e()) {
          break label225;
        }
        localObject2 = ((m)localObject1).a();
        this.H.a((a.c.d)localObject2, null);
        localObject3 = paramo.g(localObject2);
        if (bool2) {
          break label263;
        }
        if (bool1) {
          break label253;
        }
        i1 = 0;
        do
        {
          if (i1 >= localObject3.length) {
            break;
          }
          this.H.a(localObject3[i1], null);
          i1++;
          if (bool2) {
            break label222;
          }
          if (bool1) {
            break label220;
          }
        } while (!bool1);
      } while (bool2);
      ((m)localObject1).f();
    } while (!bool1);
    label225:
    if (!bool2)
    {
      if ((bool2) || (paramArrayList != null)) {
        paramArrayList.remove(paramo);
      }
      label253:
      this.J.remove(paramo);
    }
    this.K.remove(paramo);
    label263:
    if (!bool2)
    {
      if (this.I != null) {
        this.I.remove(paramo);
      }
      paramo.o();
    }
  }
  
  private void a(boolean paramBoolean, double paramDouble1, double paramDouble2, ArrayList paramArrayList)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    ArrayList localArrayList = a(paramBoolean, paramDouble1, paramArrayList);
    int i1 = 1;
    label24:
    if (i1 != 0)
    {
      break label49;
      if (!bool2)
      {
        if (localArrayList.isEmpty()) {
          break label220;
        }
        i1 = 0;
      }
    }
    label49:
    label89:
    label220:
    while (bool2)
    {
      int i2 = 0;
      do
      {
        if (i1 != 0) {
          break label200;
        }
        if (bool1) {
          break;
        }
        do
        {
          if (i2 >= localArrayList.size() - 1) {
            break;
          }
          break label89;
          o localo1 = (o)localArrayList.get(i2);
          int i3 = i2 + 1;
          do
          {
            if (i1 != 0) {
              break label187;
            }
            if (bool1) {
              break;
            }
            if (i3 >= localArrayList.size()) {
              break label187;
            }
            o localo2 = (o)localArrayList.get(i3);
            o localo3 = a(localo1, localo2, paramBoolean, paramDouble2);
            if (!bool2)
            {
              if (localo3 != null)
              {
                a(localo1, paramArrayList);
                a(localo2, paramArrayList);
                paramArrayList.add(localo3);
                this.J.add(localo3);
                i1 = 1;
              }
              i3++;
            }
          } while (!bool1);
          i2++;
        } while (bool2);
      } while (!bool1);
      localArrayList = a(paramBoolean, paramDouble1, paramArrayList);
      if (bool2) {
        break label24;
      }
      if (!bool1) {
        break;
      }
    }
    label187:
    label200:
    return;
  }
  
  private o a(o paramo1, o paramo2, boolean paramBoolean, double paramDouble)
  {
    boolean bool = R;
    double d1;
    label87:
    double d2;
    if (paramBoolean)
    {
      d1 = i(paramo1) + i(paramo2) + 50.0D;
      if (!bool)
      {
        if (d1 > this.u.a) {
          break label203;
        }
        if (bool) {
          break label87;
        }
      }
      d2 = j(paramo1) < j(paramo2) ? j(paramo1) / j(paramo2) : j(paramo2) / j(paramo1);
      if (d2 >= paramDouble) {
        return a(paramo1, paramo2, paramBoolean);
      }
    }
    else
    {
      d1 = j(paramo1) + j(paramo2) + 50.0D;
      if (!bool)
      {
        if (d1 > this.u.b) {
          break label203;
        }
        if (bool) {
          break label184;
        }
      }
      label184:
      d2 = i(paramo1) < i(paramo2) ? i(paramo1) / i(paramo2) : i(paramo2) / i(paramo1);
      if (d2 >= paramDouble) {
        return a(paramo1, paramo2, paramBoolean);
      }
    }
    label203:
    return null;
  }
  
  private o a(o paramo1, o paramo2, boolean paramBoolean)
  {
    a.f.q localq = new a.f.q();
    a.i.x localx = new a.i.x(new a_(true));
    a.d.w localw1 = h(paramo1);
    wc.b(paramo1, paramo1.v(), -localw1.a, -localw1.b);
    localx.a(paramo1, localq);
    a.d.w localw2 = h(paramo2);
    a.d.w localw3;
    Rectangle localRectangle;
    if (paramBoolean)
    {
      localw3 = new a.d.w(Math.ceil(i(paramo1) + 50.0D), 0.0D);
      localRectangle = new Rectangle(0, 0, (int)Math.ceil(i(paramo1) + i(paramo2) + 50.0D), (int)Math.ceil(Math.max(j(paramo1), j(paramo2))));
      if (R) {
        break label283;
      }
      if (!Q) {}
    }
    else
    {
      localw3 = new a.d.w(0.0D, Math.ceil(j(paramo1) + 50.0D));
      localRectangle = new Rectangle(0, 0, (int)Math.ceil(Math.max(i(paramo1), i(paramo2))), (int)Math.ceil(j(paramo1) + j(paramo2) + 50.0D));
    }
    wc.b(paramo2, paramo2.v(), localw3.a - localw2.a, localw3.b - localw2.b);
    localx.a(paramo2, localq);
    a(localq, paramo1, paramo2);
    this.K.put(localq, localRectangle);
    label283:
    return localq;
  }
  
  private Rectangle2D g(o paramo)
  {
    Rectangle2D localRectangle2D = (Rectangle2D)this.K.get(paramo);
    if (!R) {
      if (localRectangle2D == null)
      {
        localRectangle2D = wc.a(paramo, paramo.v(), paramo.w(), true);
        this.K.put(paramo, localRectangle2D);
      }
    }
    return localRectangle2D;
  }
  
  private a.d.w h(o paramo)
  {
    Rectangle2D localRectangle2D = g(paramo);
    return new a.d.w(localRectangle2D.getX(), localRectangle2D.getY());
  }
  
  private double i(o paramo)
  {
    return g(paramo).getWidth();
  }
  
  private double j(o paramo)
  {
    return g(paramo).getHeight();
  }
  
  private ArrayList a(boolean paramBoolean, double paramDouble, ArrayList paramArrayList)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    ArrayList localArrayList = new ArrayList();
    int i1 = 0;
    if (i1 < paramArrayList.size())
    {
      if (bool2) {}
    }
    else
    {
      label120:
      label127:
      while (bool2)
      {
        o localo = (o)paramArrayList.get(i1);
        if (bool1) {
          break label155;
        }
        if (!bool2) {
          if (paramBoolean)
          {
            if (bool2) {
              break label127;
            }
            if (i(localo) / this.u.a < paramDouble) {
              break label120;
            }
          }
        }
        if (!bool2)
        {
          if (!paramBoolean)
          {
            if (bool2) {
              break label133;
            }
            if (j(localo) / this.u.b < paramDouble) {
              localArrayList.add(localo);
            }
          }
          i1++;
        }
        if (!bool1) {
          break;
        }
      }
      label133:
      Collections.sort(localArrayList, new Comparator()
      {
        private final boolean val$horizontalDirection;
        
        public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
        {
          o localo1 = (o)paramAnonymousObject1;
          o localo2 = (o)paramAnonymousObject2;
          if (!a.R) {
            if (this.val$horizontalDirection) {
              return l.a(a.this.j(localo2), a.this.j(localo1));
            }
          }
          return l.a(a.this.i(localo2), a.this.i(localo1));
        }
      });
    }
    label155:
    return localArrayList;
  }
  
  private ArrayList a(o paramo, boolean paramBoolean1, HashSet paramHashSet, boolean paramBoolean2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    HashSet localHashSet = new HashSet();
    ArrayList localArrayList = new ArrayList();
    a.c.w localw = paramo.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale1 = localw.d();
      i_ locali_ = (i_)this.H.a(locale1);
      a.c.e locale2 = this.H.d(locali_.i);
      if (bool1) {
        break label209;
      }
      if (locale2 != null) {
        if ((bool2) || (paramBoolean2))
        {
          if (bool2) {
            continue;
          }
          if (locali_.c() != 4) {}
        }
        else
        {
          a.c.q localq = locale2.g();
          if (bool2) {
            continue;
          }
          if (localq != paramo)
          {
            if (bool2) {
              continue;
            }
            if (paramHashSet.contains(localq))
            {
              if (bool2) {
                continue;
              }
              if (!localHashSet.contains(localq))
              {
                localArrayList.add(localq);
                localHashSet.add(localq);
              }
            }
          }
        }
      }
      localw.f();
    } while (!bool1);
    if (!bool2) {
      Collections.sort(localArrayList, new Comparator()
      {
        private final boolean val$horizontalDirection;
        
        public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
        {
          o localo1 = (o)paramAnonymousObject1;
          o localo2 = (o)paramAnonymousObject2;
          if (!a.R) {
            if (this.val$horizontalDirection) {
              return l.a(a.this.j(localo2), a.this.j(localo1));
            }
          }
          return l.a(a.this.i(localo2), a.this.i(localo1));
        }
      });
    }
    label209:
    return localArrayList;
  }
  
  private void m()
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    z localz = new z();
    HashMap localHashMap = new HashMap();
    a.i.x localx = new a.i.x(new a_(true));
    ArrayList localArrayList1 = new ArrayList();
    Object localObject1 = this.G.v();
    Object localObject2;
    label259:
    label567:
    label568:
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.w)localObject1).d();
      i_ locali_1 = (i_)this.H.a((a.c.e)localObject2);
      if ((!bool2) && (bool1)) {
        break label591;
      }
      if (!bool2)
      {
        if (locali_1.c() != 1)
        {
          o localo1 = a((a.c.e)localObject2, localx);
          t(localo1);
          r(localo1);
          n(localo1);
          if (!bool2) {
            if (f(localo1))
            {
              if (locali_1.o != null)
              {
                if (!bool2)
                {
                  if (!localHashMap.containsKey(locali_1.o))
                  {
                    localHashMap.put(locali_1.o, new ArrayList());
                    localz.add(locali_1.o);
                  }
                  ((ArrayList)localHashMap.get(locali_1.o)).add(localo1);
                }
                if (bool2) {
                  break label259;
                }
                if (!bool1) {}
              }
              else
              {
                this.F.add(localo1);
              }
              localArrayList1.add(localo1);
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label568;
              }
            }
          }
          a.c.e locale1 = this.H.d(locali_1.d());
          i_ locali_2 = (i_)this.H.a(locale1);
          locali_2.n = 0;
          a.c.e locale2 = d(localo1, locale1);
          ArrayList localArrayList2 = new ArrayList();
          localArrayList2.addAll(a((o)locale2.g(), locale1, this.H.c(locale2)));
          r(localo1);
          n(localo1);
          if (!bool2)
          {
            localArrayList2.addAll(a(localo1, locali_1.d()));
            if (locali_1.o != null)
            {
              o localo2 = (o)this.H.d(locali_1.d()).g();
              localArrayList1.add(localo2);
              localArrayList2.remove(localo2);
              if (!bool2) {
                if (!localHashMap.containsKey(locali_1.o))
                {
                  localHashMap.put(locali_1.o, new ArrayList());
                  localz.add(locali_1.o);
                }
              }
              ((ArrayList)localHashMap.get(locali_1.o)).add(localo2);
            }
          }
          if (!bool2) {
            if (q()) {
              a(localArrayList2, 9223372036854775807L, false, false, 2);
            }
          }
          if (!bool2)
          {
            if (this.x)
            {
              if (bool2) {
                break label567;
              }
              if (q()) {
                a(localArrayList2, 9223372036854775807L, true, false, 2);
              }
            }
            this.F.addAll(localArrayList2);
          }
          localArrayList1.addAll(localArrayList2);
        }
        ((a.c.w)localObject1).f();
      }
    } while (!bool1);
    if (!bool2) {
      c(localArrayList1);
    }
    label591:
    localObject1 = localz.iterator();
    do
    {
      if (!((Iterator)localObject1).hasNext()) {
        break;
      }
      localObject2 = (ArrayList)localHashMap.get(((Iterator)localObject1).next());
      a((ArrayList)localObject2, p(), false, false, 4);
      a((ArrayList)localObject2, p(), false, false, 2);
      a((ArrayList)localObject2, p(), true, false, 2);
      a(false, (ArrayList)localObject2);
      a((ArrayList)localObject2);
      a((ArrayList)localObject2, p());
      this.F.addAll((Collection)localObject2);
    } while (!bool1);
  }
  
  private bb[] a(bb parambb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    bb[] arrayOfbb = new bb[2];
    arrayOfbb[0] = new bb();
    arrayOfbb[1] = new bb();
    bb localbb1 = new bb();
    bb localbb2 = new bb();
    a.c.w localw = parambb.l();
    do
    {
      if (!localw.e()) {
        break;
      }
      localObject = localw.d();
      if (bool1) {
        break label128;
      }
      if (((a.c.e)localObject).d() > 0)
      {
        localbb1.add(localObject);
        if (bool2) {
          continue;
        }
        if (!bool1) {}
      }
      else
      {
        localbb2.add(localObject);
      }
      localw.f();
    } while (!bool1);
    label128:
    int i1 = 1;
    Object localObject = localbb1.l();
    do
    {
      do
      {
        if (!((a.c.w)localObject).e()) {
          break;
        }
        arrayOfbb[(i1 % 2)].add(((a.c.w)localObject).d());
        ((a.c.w)localObject).f();
        i1++;
        if (bool2) {
          break label207;
        }
        if (bool1) {
          break label200;
        }
      } while (!bool1);
    } while (bool2);
    localObject = localbb2.l();
    label200:
    label207:
    do
    {
      while (!bool1)
      {
        if (!((a.c.w)localObject).e()) {
          break;
        }
        if ((!bool2) && (bool1)) {
          break label258;
        }
        arrayOfbb[(i1 % 2)].add(((a.c.w)localObject).d());
        ((a.c.w)localObject).f();
        i1++;
      }
    } while (bool2);
    label258:
    return arrayOfbb;
  }
  
  private final a.c.e d(o paramo, a.c.e parame)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    s(paramo);
    bb localbb = new bb();
    Object localObject1 = paramo.v();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      locale1 = ((a.c.w)localObject1).d();
      if (!bool2)
      {
        if (locale1 != parame) {
          localbb.add(locale1);
        }
        ((a.c.w)localObject1).f();
      }
    } while (!bool1);
    localObject1 = new bb(parame);
    a.c.e locale1 = a(paramo, parame);
    a.c.e locale2 = c(paramo, locale1);
    ((bb)localObject1).add(locale2);
    Object localObject2 = localbb.l();
    label226:
    label228:
    do
    {
      do
      {
        if (!((a.c.w)localObject2).e()) {
          break label231;
        }
        localObject3 = ((a.c.w)localObject2).d();
        if (bool1) {
          break label254;
        }
        m localm = new ab(((a.c.e)localObject3).l()).l();
        do
        {
          if (!localm.e()) {
            break;
          }
          a.c.d locald = localm.a();
          a(paramo, locale1, (a.c.e)localObject3, locald, parame);
          localm.f();
          if (bool2) {
            break label228;
          }
          if (bool1) {
            break label226;
          }
        } while (!bool1);
      } while (bool2);
      ((a.c.w)localObject2).f();
    } while (!bool1);
    label231:
    localbb.add(locale1);
    if (!bool2) {
      a(paramo, locale2, parame, locale1);
    }
    label254:
    localObject2 = a(paramo, localbb, true);
    r((o)localObject2);
    n((o)localObject2);
    Object localObject3 = localbb.l();
    do
    {
      while (!bool1)
      {
        if (!((a.c.w)localObject3).e()) {
          break;
        }
        paramo.a(((a.c.w)localObject3).d());
        ((a.c.w)localObject3).f();
      }
    } while (bool2);
    return this.H.d(locale1);
  }
  
  private ArrayList a(o paramo, a.c.e parame, Object paramObject)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (f(paramo))
      {
        localObject1 = new ArrayList();
        ((ArrayList)localObject1).add(paramo);
        return localObject1;
      }
    }
    s(paramo);
    Object localObject1 = new bb();
    Object localObject2 = paramo.v();
    do
    {
      if (!((a.c.w)localObject2).e()) {
        break;
      }
      localObject3 = (i_)this.H.a(((a.c.w)localObject2).d());
      if (!bool2)
      {
        if (((i_)localObject3).c() == 4) {
          ((bb)localObject1).add(((i_)localObject3).g);
        }
        ((a.c.w)localObject2).f();
      }
    } while (!bool1);
    localObject2 = (o)parame.g();
    Object localObject3 = this.H.d(paramObject);
    a.c.e locale1 = a(paramo, (a.c.e)localObject3);
    a.c.e locale2 = c((o)localObject2, locale1);
    bb[] arrayOfbb = a((bb)localObject1);
    arrayOfbb[0].add(localObject3);
    Object localObject4 = arrayOfbb[1].l();
    label301:
    label303:
    do
    {
      do
      {
        if (!((a.c.w)localObject4).e()) {
          break label306;
        }
        localObject5 = ((a.c.w)localObject4).d();
        if (bool1) {
          break label333;
        }
        localObject6 = new ab(((a.c.e)localObject5).l()).l();
        do
        {
          if (!((m)localObject6).e()) {
            break;
          }
          a.c.d locald = ((m)localObject6).a();
          a(paramo, locale1, (a.c.e)localObject5, locald, (a.c.e)localObject3);
          ((m)localObject6).f();
          if (bool2) {
            break label303;
          }
          if (bool1) {
            break label301;
          }
        } while (!bool1);
      } while (bool2);
      ((a.c.w)localObject4).f();
    } while (!bool1);
    label306:
    arrayOfbb[1].add(locale1);
    if (!bool2) {
      a((o)localObject2, locale2, parame, locale1);
    }
    label333:
    localObject4 = new ArrayList();
    Object localObject5 = a(paramo, arrayOfbb[0], true);
    r((o)localObject5);
    n((o)localObject5);
    ((ArrayList)localObject4).addAll(a((o)localObject5, parame, paramObject));
    Object localObject6 = a(paramo, arrayOfbb[1], true);
    r((o)localObject6);
    n((o)localObject6);
    ((ArrayList)localObject4).addAll(a((o)localObject6, parame, locale1));
    return localObject4;
  }
  
  private ArrayList a(o paramo, Object paramObject)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (f(paramo))
      {
        localObject1 = new ArrayList();
        ((ArrayList)localObject1).add(paramo);
        return localObject1;
      }
    }
    s(paramo);
    Object localObject1 = new bb();
    Object localObject2 = paramo.v();
    label137:
    do
    {
      if (!((a.c.w)localObject2).e()) {
        break;
      }
      if (bool2) {
        break label157;
      }
      locale = ((a.c.w)localObject2).d();
      if (bool1) {
        break label154;
      }
      localObject3 = this.H.a(locale);
      if (!bool2) {
        if (((j)localObject3).c() != 4)
        {
          if (bool2) {
            continue;
          }
          if (((j)localObject3).c() != 3) {
            break label137;
          }
        }
      }
      ((bb)localObject1).add(locale);
      ((a.c.w)localObject2).f();
    } while (!bool1);
    label154:
    label157:
    localObject2 = this.H.d(paramObject);
    a.c.e locale = a(paramo, (a.c.e)localObject2);
    Object localObject3 = c(paramo, locale);
    int i1 = ((i_)this.H.a((a.c.e)localObject2)).n;
    ((i_)this.H.a(locale)).n = (i1 + 1);
    bb[] arrayOfbb = a((bb)localObject1);
    arrayOfbb[0].add(localObject2);
    arrayOfbb[0].add(localObject3);
    Object localObject4 = arrayOfbb[1].l();
    label358:
    label360:
    do
    {
      do
      {
        if (!((a.c.w)localObject4).e()) {
          break label363;
        }
        localObject5 = ((a.c.w)localObject4).d();
        if (bool1) {
          break label390;
        }
        localObject6 = new ab(((a.c.e)localObject5).l()).l();
        do
        {
          if (!((m)localObject6).e()) {
            break;
          }
          a.c.d locald = ((m)localObject6).a();
          a(paramo, locale, (a.c.e)localObject5, locald, (a.c.e)localObject2);
          ((m)localObject6).f();
          if (bool2) {
            break label360;
          }
          if (bool1) {
            break label358;
          }
        } while (!bool1);
      } while (bool2);
      ((a.c.w)localObject4).f();
    } while (!bool1);
    label363:
    arrayOfbb[1].add(locale);
    if (!bool2) {
      a(paramo, (a.c.e)localObject3, (a.c.e)localObject2, locale);
    }
    label390:
    localObject4 = new ArrayList();
    Object localObject5 = a(paramo, arrayOfbb[0], true);
    r((o)localObject5);
    n((o)localObject5);
    ((ArrayList)localObject4).addAll(a((o)localObject5, paramObject));
    Object localObject6 = a(paramo, arrayOfbb[1], true);
    r((o)localObject6);
    n((o)localObject6);
    ((ArrayList)localObject4).addAll(a((o)localObject6, locale));
    return localObject4;
  }
  
  private void c(ArrayList paramArrayList)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    HashMap localHashMap = new HashMap();
    int i1 = 0;
    label173:
    label185:
    do
    {
      if (i1 >= paramArrayList.size()) {
        break;
      }
      o localo = (o)paramArrayList.get(i1);
      a.c.w localw = localo.v();
      do
      {
        do
        {
          if (!localw.e()) {
            break label185;
          }
          i_ locali_1 = (i_)this.H.a(localw.d());
          if (bool1) {
            break;
          }
          if (locali_1.c() == 4)
          {
            a.c.e locale = (a.c.e)localHashMap.get(locali_1.m);
            if (!bool2) {
              if (locale != null)
              {
                i_ locali_2 = (i_)this.H.a(locale);
                locali_2.i = locali_1.d();
                locali_1.i = locali_2.d();
                if (bool2) {
                  continue;
                }
                if (!bool1) {
                  break label173;
                }
              }
            }
            localHashMap.put(locali_1.m, locali_1.g);
          }
          localw.f();
        } while (!bool1);
        i1++;
      } while (bool2);
    } while (!bool1);
  }
  
  public boolean canLayout(o paramo)
  {
    boolean bool = R;
    if (((!bool) && (paramo.c(h) == null)) || ((!bool) && (paramo.c(i) == null)) || ((bool) || ((paramo.c(k) == null) || (paramo.c(j) == null)))) {
      return false;
    }
    return b(paramo);
  }
  
  public s n()
  {
    return this.u;
  }
  
  public void a(s params)
  {
    this.u = params;
  }
  
  private boolean k(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (!a.f.c.h.b(paramo)) {
        return false;
      }
    }
    a.c.k localk = paramo.c(a.f.c.i.c);
    a.c.w localw = paramo.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale = localw.d();
      if (bool1) {
        break label84;
      }
      if (localk.getBool(locale)) {
        return true;
      }
      localw.f();
    } while (!bool1);
    label84:
    return false;
  }
  
  private void o()
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2)
    {
      if (this.w != 0)
      {
        if (bool2) {
          break label264;
        }
        if (k(this.G))
        {
          this.L = new HashMap();
          this.M = new HashMap();
          this.I = new HashMap();
          a.f.c.h localh = new a.f.c.h(this.G);
          a.c.k localk = this.G.c(a.f.c.i.d);
          a.c.w localw = this.G.v();
          do
          {
            if (!localw.e()) {
              break;
            }
            a.c.e locale1 = localw.d();
            Object localObject1 = this.H.c(locale1);
            a.c.e locale2 = localh.b(locale1);
            if (bool2) {
              break label250;
            }
            if (bool1) {
              break label248;
            }
            Object localObject2 = locale2 == null ? null : this.H.c(locale2);
            this.L.put(localObject1, localObject2);
            if (!bool2)
            {
              if (localObject2 != null)
              {
                if (!bool2) {}
                u localu = localk == null ? null : (u)localk.get(locale2);
                this.M.put(localObject2, localu);
              }
              localw.f();
            }
          } while (!bool1);
          if (!bool2) {
            localh.e();
          }
          label248:
          if (!bool1) {
            label250:
            return;
          }
        }
      }
      this.L = null;
      this.M = null;
    }
    label264:
    this.I = null;
  }
  
  private long p()
  {
    if (!R) {
      if (this.v == 9223372036854775807L) {
        return 9223372036854775807L;
      }
    }
    return this.v - (System.currentTimeMillis() - this.E);
  }
  
  private boolean q()
  {
    return a(this.E, this.v);
  }
  
  private boolean a(long paramLong1, long paramLong2)
  {
    long l1 = System.currentTimeMillis() - paramLong1;
    if (!R) {}
    return l1 < paramLong2;
  }
  
  private int l(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    int i1 = 0;
    a.c.w localw = paramo.v();
    label104:
    label115:
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale1 = localw.d();
      i_ locali_ = (i_)this.H.a(locale1);
      if ((!bool2) && (bool1)) {
        break label152;
      }
      if (!bool2) {
        if (locali_.c() != 4)
        {
          if (bool2) {
            break label115;
          }
          if (locali_.c() != 2) {
            break label104;
          }
        }
      }
      i1 += locale1.c();
      if (!bool2)
      {
        if (bool1)
        {
          if (bool2) {
            continue;
          }
          if (locali_.c() == 3)
          {
            a.c.e locale2 = this.H.d(locali_.i);
            i1 += locale2.c();
          }
        }
        localw.f();
      }
    } while (!bool1);
    label152:
    return i1;
  }
  
  private int a(a.c.q paramq1, a.c.q paramq2, int paramInt)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (this.I == null) {
        return 0;
      }
    }
    HashSet localHashSet1 = (HashSet)this.I.get(paramq1);
    HashSet localHashSet2 = (HashSet)this.I.get(paramq2);
    if (!bool2) {}
    HashSet localHashSet3 = localHashSet1.size() < localHashSet2.size() ? localHashSet1 : localHashSet2;
    if (!bool2) {}
    HashSet localHashSet4 = localHashSet1.size() < localHashSet2.size() ? localHashSet2 : localHashSet1;
    int i1 = 0;
    Iterator localIterator = localHashSet3.iterator();
    do
    {
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
      } while (!localHashSet4.contains(localIterator.next()));
      i1++;
    } while ((!bool2) && (!bool2) && (!bool1));
    return Math.min(paramInt, i1 * 25);
  }
  
  private static int a(int paramInt1, int paramInt2, int paramInt3)
  {
    return (int)Math.ceil(paramInt3 * 2.0D * paramInt1 / paramInt2);
  }
  
  private void a(int paramInt, long paramLong)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    long l1 = System.currentTimeMillis();
    z localz1 = new z();
    Object localObject1 = this.F.iterator();
    o localo1;
    do
    {
      do
      {
        do
        {
          if (!((Iterator)localObject1).hasNext()) {
            break;
          }
          localo1 = (o)((Iterator)localObject1).next();
        } while (localo1.k() > paramInt);
        localz1.add(localo1);
      } while (bool2);
    } while (!bool1);
    localObject1 = new HashSet(localz1);
    label262:
    label489:
    label496:
    do
    {
      break label496;
      a.c.w localw;
      while (!localw.e())
      {
        HashSet localHashSet;
        Object localObject3;
        Object localObject4;
        o localo2;
        do
        {
          Object localObject2;
          do
          {
            if ((localz1.isEmpty()) || ((!bool2) && (!a(l1, paramLong)))) {
              break;
            }
            z localz2;
            do
            {
              do
              {
                localo1 = (o)localz1.b();
                if (!((HashSet)localObject1).contains(localo1)) {
                  break;
                }
                localz2 = new z();
                localHashSet = new HashSet();
              } while (bool2);
              localObject2 = localo1.v();
              do
              {
                if (!((a.c.w)localObject2).e()) {
                  break label262;
                }
                localObject3 = (i_)this.H.a(((a.c.w)localObject2).d());
                if ((!bool2) && (bool1)) {
                  break;
                }
                if (((i_)localObject3).c() == 4)
                {
                  localObject4 = this.H.d(((i_)localObject3).i);
                  localz2.add(((a.c.e)localObject4).g());
                }
                localHashSet.add(((i_)localObject3).g);
                ((a.c.w)localObject2).f();
              } while (!bool1);
            } while (bool2);
            localObject2 = localz2.iterator();
          } while (!((Iterator)localObject2).hasNext());
          localObject3 = (o)((Iterator)localObject2).next();
          if (a((o)localObject3, localo1)) {
            break;
          }
          localObject4 = new bb();
          localo2 = a((o)localObject3, localo1, localHashSet, (bb)localObject4);
          this.H.a(localo2);
          a(localo2, new p()
          {
            private final HashSet val$subgraphNodeSet;
            
            public boolean getBool(Object paramAnonymousObject)
            {
              return this.val$subgraphNodeSet.contains(paramAnonymousObject);
            }
          }, this.H);
        } while ((bool2) || (bool1));
        if (!f(localo2)) {
          break;
        }
        if (!bool2)
        {
          if (a(localo2, localHashSet, 5.0D)) {
            break;
          }
          a((o)localObject3, this.F);
          ((HashSet)localObject1).remove(localObject3);
          a(localo1, this.F);
          ((HashSet)localObject1).remove(localo1);
          this.F.add(localo2);
          this.J.add(localo2);
          if (bool2) {
            break label489;
          }
        }
        if (localo2.k() <= paramInt)
        {
          localz1.add(localo2);
          ((HashSet)localObject1).add(localo2);
        }
        m(localo2);
        localw = ((bb)localObject4).l();
      }
      a.c.e locale = localw.d();
      locale.g().a(locale);
      localw.f();
    } while ((!bool2) && ((!bool1) && (!bool1)));
  }
  
  protected void a(o paramo, a.c.k paramk, h paramh)
  {
    b(paramo, paramk, null);
  }
  
  private void m(o paramo)
  {
    boolean bool = Q;
    Object localObject1 = paramo.v();
    Object localObject2;
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = (i_)this.H.a(((a.c.w)localObject1).d());
      this.H.c(((i_)localObject2).g, ((i_)localObject2).j);
      ((a.c.w)localObject1).f();
    } while (!bool);
    localObject1 = paramo.w();
    do
    {
      if (!((m)localObject1).e()) {
        break;
      }
      localObject2 = (g_)this.H.a(((m)localObject1).a());
      this.H.c(((g_)localObject2).f, ((g_)localObject2).a());
      ((m)localObject1).f();
    } while (!bool);
  }
  
  private Rectangle2D a(o paramo, a.c.k paramk1, a.c.k paramk2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    bb localbb = new bb();
    Object localObject1 = paramo.v();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.w)localObject1).d();
      if ((bool2) || (paramk1 != null))
      {
        if (bool2) {
          continue;
        }
        if (paramk1.getBool(localObject2)) {}
      }
      else
      {
        localbb.add(localObject2);
      }
      ((a.c.w)localObject1).f();
    } while (!bool1);
    localObject1 = new ab();
    Object localObject2 = paramo.w();
    label203:
    do
    {
      if (!((m)localObject2).e()) {
        break;
      }
      a.c.d locald = ((m)localObject2).a();
      if (!bool2) {
        if (paramk2 != null)
        {
          if (bool2) {
            continue;
          }
          if (paramk2.getBool(locald)) {
            break label203;
          }
        }
      }
      if ((bool2) || (paramk1 != null))
      {
        if (bool2) {
          continue;
        }
        if (!paramk1.getBool(locald.e()))
        {
          if (bool2) {
            continue;
          }
          if (paramk1.getBool(locald.f())) {}
        }
      }
      else
      {
        ((ab)localObject1).add(locald);
      }
      ((m)localObject2).f();
    } while (!bool1);
    return wc.a(paramo, localbb.l(), ((ab)localObject1).l(), true);
  }
  
  private void b(o paramo, a.c.k paramk1, a.c.k paramk2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Rectangle2D localRectangle2D = a(paramo, paramk1, paramk2);
    a.d.w localw = new a.d.w(localRectangle2D.getCenterX(), localRectangle2D.getCenterY());
    a.c.e locale = paramo.i();
    paramo.a(locale, this.u);
    paramo.a(locale, localw);
    a.c.k localk1 = paramo.c(a.f.c.i.b);
    a.c.k localk2 = paramo.c(a.f.c.i.c);
    a.c.k localk3 = paramo.c(a.f.c.i.a);
    paramo.a(a.f.c.i.c, new p()
    {
      private final a.c.e val$borderDummy;
      private final a.c.k val$origNode2IsGroupDP;
      
      public boolean getBool(Object paramAnonymousObject)
      {
        if (paramAnonymousObject == this.val$borderDummy) {
          return true;
        }
        if ((a.R) || (this.val$origNode2IsGroupDP != null)) {
          return this.val$origNode2IsGroupDP.getBool(paramAnonymousObject);
        }
        return false;
      }
    });
    paramo.a(a.f.c.i.a, new p()
    {
      private final a.c.e val$borderDummy;
      private final a.c.k val$origNode2IdDP;
      
      public Object get(Object paramAnonymousObject)
      {
        if (paramAnonymousObject == this.val$borderDummy) {
          return this.val$borderDummy;
        }
        if (!a.R) {
          if (this.val$origNode2IdDP != null) {
            return this.val$origNode2IdDP.get(paramAnonymousObject);
          }
        }
        return paramAnonymousObject;
      }
    });
    paramo.a(a.f.c.i.b, new p()
    {
      private final a.c.e val$borderDummy;
      private final a.c.k val$origNode2ParentIdDP;
      
      public Object get(Object paramAnonymousObject)
      {
        if (paramAnonymousObject == this.val$borderDummy) {
          return null;
        }
        if (!a.R) {
          if (this.val$origNode2ParentIdDP != null)
          {
            Object localObject = this.val$origNode2ParentIdDP.get(paramAnonymousObject);
            return localObject == null ? this.val$borderDummy : localObject;
          }
        }
        return this.val$borderDummy;
      }
    });
    a.f.i.a locala = new a.f.i.a();
    locala.a(10);
    locala.d(true);
    locala.b((byte)1);
    locala.c((byte)2);
    if (!bool2) {}
    byte b = (a() instanceof mb) ? ((mb)a()).i() : -1;
    locala.d(b);
    if (!bool2)
    {
      if (paramk1 != null)
      {
        if (bool2) {
          break label255;
        }
        paramo.a(a.f.i.a.g, paramk1);
      }
    }
    else {
      if (!bool1) {
        break label258;
      }
    }
    label255:
    paramo.a(a.f.i.a.g, a.i.q.a(Boolean.FALSE));
    label258:
    if (paramk2 != null)
    {
      paramo.a(a.f.i.a.h, paramk2);
      if (bool2) {
        break label299;
      }
      if (!bool1) {}
    }
    else
    {
      paramo.a(a.f.i.a.h, a.i.q.a(Boolean.FALSE));
    }
    locala.doLayout(paramo);
    label299:
    if (!bool2)
    {
      if (localk2 != null)
      {
        if (bool2) {
          break label332;
        }
        paramo.a(a.f.c.i.c, localk2);
      }
    }
    else {
      if (!bool1) {
        break label335;
      }
    }
    label332:
    paramo.j(a.f.c.i.c);
    label335:
    if (localk3 != null)
    {
      if (bool2) {
        break label363;
      }
      paramo.a(a.f.c.i.a, localk3);
      if (!bool1) {
        break label366;
      }
    }
    label363:
    paramo.j(a.f.c.i.a);
    label366:
    if (localk1 != null)
    {
      paramo.a(a.f.c.i.b, localk1);
      if (bool2) {
        return;
      }
      if (!bool1) {}
    }
    else
    {
      paramo.j(a.f.c.i.b);
    }
    paramo.j(a.f.i.a.g);
    paramo.j(a.f.i.a.h);
    paramo.a(locale);
  }
  
  protected void a(o paramo, a.c.k paramk, t paramt)
  {
    boolean bool3 = R;
    boolean bool2 = Q;
    a.c.k localk = a.i.q.c(paramk);
    boolean bool1 = wc.b(paramo, localk);
    if (!bool3)
    {
      if (!bool1) {
        if (bool3) {
          break label305;
        }
      }
    }
    else {
      if (!wc.c(paramo, localk)) {
        break label304;
      }
    }
    Object localObject1 = new a.f.l.a.a();
    ((a.f.l.a.a)localObject1).c(true);
    ((a.f.l.a.a)localObject1).a((byte)2);
    Object localObject2 = "selectedEdges";
    ((a.f.l.a.a)localObject1).b(localObject2);
    if (!bool3) {}
    ((a.f.l.a.a)localObject1).a(!bool1);
    a.c.e locale1 = paramo.i();
    paramo.b(locale1, paramt.a, 30.0D);
    paramo.c(locale1, paramt.d(), paramt.e() - 30.0D);
    a.c.e locale2 = paramo.i();
    paramo.b(locale2, paramt.a, 30.0D);
    paramo.c(locale2, paramt.d(), paramt.e() + paramt.c());
    a.c.e locale3 = paramo.i();
    paramo.b(locale3, 30.0D, paramt.b);
    paramo.c(locale3, paramt.d() - 30.0D, paramt.e());
    a.c.e locale4 = paramo.i();
    paramo.b(locale4, 30.0D, paramt.b);
    paramo.c(locale4, paramt.d() + paramt.b(), paramt.e());
    paramo.a(localObject2, paramk);
    ((a.f.l.a.a)localObject1).doLayout(paramo);
    paramo.j(localObject2);
    paramo.a(locale1);
    paramo.a(locale2);
    paramo.a(locale3);
    if (!bool3)
    {
      paramo.a(locale4);
      if (!bool2) {}
    }
    else
    {
      label304:
      label305:
      localObject1 = paramo.w();
      do
      {
        if (!((m)localObject1).e()) {
          break;
        }
        localObject2 = ((m)localObject1).a();
        if (!bool3)
        {
          if (paramk.getBool(localObject2)) {
            wc.b(paramo, (a.c.d)localObject2);
          }
          ((m)localObject1).f();
        }
      } while (!bool2);
    }
  }
  
  private boolean a(o paramo, HashSet paramHashSet, double paramDouble)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.w localw1 = paramo.v();
    label176:
    do
    {
      if (!localw1.e()) {
        break;
      }
      a.c.e locale1 = localw1.d();
      do
      {
        if (bool1) {
          break label194;
        }
        if (paramHashSet.contains(locale1))
        {
          t localt1 = paramo.v(locale1);
          t localt2 = new t(localt1.d - paramDouble, localt1.e - paramDouble, localt1.a + 2.0D * paramDouble, localt1.b + 2.0D * paramDouble);
          a.c.w localw2 = paramo.v();
          do
          {
            if (!localw2.e()) {
              break label176;
            }
            a.c.e locale2 = localw2.d();
            if (bool1) {
              break;
            }
            if (locale2 != locale1)
            {
              t localt3 = paramo.v(locale2);
              if (bool2) {
                continue;
              }
              if (t.a(localt3, localt2)) {
                return true;
              }
            }
            localw2.f();
          } while (!bool1);
        }
        localw1.f();
      } while (bool2);
    } while (!bool1);
    label194:
    return false;
  }
  
  private boolean a(o paramo1, o paramo2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (this.I == null) {
        return false;
      }
    }
    HashSet localHashSet1 = (HashSet)this.I.get(paramo1);
    HashSet localHashSet2 = (HashSet)this.I.get(paramo2);
    Iterator localIterator = localHashSet1.iterator();
    while (localIterator.hasNext()) {
      if (localHashSet2.contains(localIterator.next()))
      {
        if ((bool2) || (bool1)) {
          break label93;
        }
        return true;
      }
    }
    label93:
    return false;
  }
  
  private void n(o paramo)
  {
    boolean bool = R;
    if (!bool) {
      if (this.z)
      {
        i().a(a());
        if (bool) {
          break label53;
        }
        i().doLayout(paramo);
        if (!Q) {
          return;
        }
      }
    }
    label53:
    a().doLayout(paramo);
  }
  
  private void a(ArrayList paramArrayList, long paramLong, boolean paramBoolean1, boolean paramBoolean2, int paramInt)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    long l1 = System.currentTimeMillis();
    z localz = new z(paramArrayList);
    HashMap localHashMap = new HashMap();
    Object localObject1 = localz.f();
    if (localObject1 != null) {}
    Object localObject2;
    while (bool2)
    {
      localObject2 = (o)((v)localObject1).c();
      localHashMap.put(localObject2, localObject1);
      localObject1 = ((v)localObject1).a();
      if ((!bool2) && (bool1)) {
        break label97;
      }
      if (!bool1) {
        break;
      }
    }
    paramArrayList.clear();
    label97:
    localObject1 = new l_(localz, paramBoolean2, paramBoolean1 ? 2 : paramInt);
    Object localObject4;
    label297:
    label434:
    label510:
    do
    {
      do
      {
        do
        {
          Object localObject6;
          do
          {
            if (!a(l1, paramLong)) {
              break label556;
            }
            if ((!bool2) && ((localObject2 = ((l_)localObject1).b()) == null)) {
              break label556;
            }
            localObject3 = ((h_)localObject2).a();
            localObject4 = new bb();
            if (!paramBoolean1) {
              break label297;
            }
            localObject5 = (o)((ArrayList)localObject3).get(0);
            localObject6 = (o)((ArrayList)localObject3).get(1);
            if (bool2) {
              break;
            }
          } while (a((o)localObject5, (o)localObject6));
          if (!bool2) {}
          Object localObject7 = ((o)localObject5).j() < ((o)localObject6).j() ? localObject5 : localObject6;
          HashSet localHashSet = new HashSet(new bb(((o)localObject7).v()));
          o localo = a((ArrayList)localObject3, localHashSet, (bb)localObject4);
          b(localo, new p()
          {
            private final HashSet val$partialNodes;
            
            public boolean getBool(Object paramAnonymousObject)
            {
              return this.val$partialNodes.contains(paramAnonymousObject);
            }
          }, null);
          if (!bool2) {
            if (bool1)
            {
              localHashSet = null;
              localo = a((ArrayList)localObject3, null, (bb)localObject4);
              n(localo);
            }
          }
          if (bool2) {
            break label553;
          }
          if (!f(localo)) {
            break;
          }
          if ((bool2) || (paramBoolean1))
          {
            if (bool2) {
              break label553;
            }
            if (a(localo, localHashSet, 5.0D)) {
              break;
            }
          }
          ((l_)localObject1).a((h_)localObject2, localo);
          m(localo);
          Object localObject5 = ((bb)localObject4).l();
          do
          {
            if (!((a.c.w)localObject5).e()) {
              break label434;
            }
            localObject6 = ((a.c.w)localObject5).d();
            ((a.c.e)localObject6).g().a((a.c.e)localObject6);
            ((a.c.w)localObject5).f();
            if ((!bool2) && (bool1)) {
              break;
            }
          } while (!bool1);
          if (bool2) {
            break label561;
          }
          localObject5 = ((ArrayList)localObject3).iterator();
          do
          {
            if (!((Iterator)localObject5).hasNext()) {
              break label510;
            }
            localObject6 = (o)((Iterator)localObject5).next();
            localObject7 = (v)localHashMap.get(localObject6);
            localz.h((v)localObject7);
            a((o)localObject6, null);
            if ((!bool2) && (bool1)) {
              break;
            }
          } while (!bool1);
          localObject5 = localz.b(localo);
          localHashMap.put(localo, localObject5);
        } while (bool2);
        if (bool2) {
          break label553;
        }
      } while (!bool1);
      ((l_)localObject1).a((h_)localObject2);
    } while (!bool1);
    label553:
    label556:
    label561:
    Object localObject3 = localz.iterator();
    do
    {
      if (!((Iterator)localObject3).hasNext()) {
        break;
      }
      localObject4 = (o)((Iterator)localObject3).next();
      paramArrayList.add(localObject4);
    } while (!bool1);
  }
  
  private boolean o(o paramo)
  {
    boolean bool = R;
    double d1 = i(paramo);
    double d2 = j(paramo);
    double d3 = d2 * d1;
    double d4 = this.u.a * this.u.b;
    if (!bool) {
      if (d3 / d4 <= 0.7D)
      {
        if (bool) {
          break label102;
        }
        if (d1 / this.u.a <= 0.9D) {
          if (bool) {
            break label102;
          }
        }
      }
    }
    label102:
    return d2 / this.u.b > 0.9D;
  }
  
  private o a(o paramo, bb parambb, boolean paramBoolean)
  {
    a.i.x localx = new a.i.x(new a_(paramBoolean));
    o localo = (o)localx.a(paramo, parambb.l());
    return localo;
  }
  
  private o p(o paramo)
  {
    a.i.x localx = new a.i.x(new a_(false));
    o localo = (o)localx.a(paramo);
    return localo;
  }
  
  private o a(a.c.e parame, a.i.x paramx)
  {
    return (o)paramx.a(parame.g(), new bb(parame).l());
  }
  
  private a.c.w q(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (this.L == null) {
      return paramo.v();
    }
    bb localbb = new bb();
    a.f.c.h localh = new a.f.c.h(paramo);
    a.c.w localw = paramo.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale = localw.d();
      if (bool2) {
        break label116;
      }
      if (bool1) {
        break label113;
      }
      if (!bool2)
      {
        if (!localh.e(locale)) {
          localbb.add(locale);
        }
        localw.f();
      }
    } while (!bool1);
    if (!bool2) {
      label113:
      localh.e();
    }
    label116:
    return localbb.l();
  }
  
  private o a(o paramo1, o paramo2, HashSet paramHashSet, bb parambb)
  {
    ArrayList localArrayList = new ArrayList();
    localArrayList.add(paramo1);
    localArrayList.add(paramo2);
    return a(localArrayList, paramHashSet, parambb);
  }
  
  private ab a(a.c.e parame1, a.c.e parame2, o paramo, boolean paramBoolean)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.e locale1 = parame1.o().d();
    a.c.e locale2 = parame2.o().d();
    HashMap localHashMap = new HashMap();
    Object localObject1 = parame1.l();
    do
    {
      if (!((m)localObject1).e()) {
        break;
      }
      localObject2 = (g_)this.H.a(((m)localObject1).a());
      localHashMap.put(((g_)localObject2).h, ((g_)localObject2).f);
      ((m)localObject1).f();
    } while (!bool1);
    localObject1 = new ab();
    Object localObject2 = parame2.l();
    label312:
    do
    {
      if (!((m)localObject2).e()) {
        break;
      }
      a.c.d locald1 = ((m)localObject2).a();
      if (bool1) {
        break label358;
      }
      if (!bool2) {}
      a.c.d locald2 = locald1.f() == parame2 ? paramo.a(locale2, locale1) : paramo.a(locale1, locale2);
      Object localObject3 = ((g_)this.H.a(locald1)).h;
      this.H.a(locald2, new g_(locald2, localObject3, (byte)0, this.H));
      if (!bool2) {
        if (paramBoolean) {
          this.H.c(locald2, localObject3);
        }
      }
      ((ab)localObject1).add(locald2);
      ab localab = new ab(locald1);
      a.c.d locald3 = (a.c.d)localHashMap.get(localObject3);
      if (!bool2)
      {
        if (locald1.f() == parame2) {
          localab.b(locald3);
        }
      }
      else
      {
        if (bool2) {
          continue;
        }
        if (!bool1) {
          break label312;
        }
      }
      localab.a(locald3);
      this.H.a(paramo);
      a(locald1, locald2, this.H);
      ((m)localObject2).f();
    } while (!bool1);
    paramo.a(parame1);
    if (!bool2) {
      paramo.a(parame2);
    }
    label358:
    return localObject1;
  }
  
  private o a(ArrayList paramArrayList, HashSet paramHashSet, bb parambb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (paramArrayList.isEmpty()) {
      return null;
    }
    a.i.x localx = new a.i.x(new a_(false, paramHashSet));
    o localo1 = (o)paramArrayList.get(0);
    o localo2 = (o)localx.a(localo1, q(localo1));
    int i1 = 1;
    if (i1 < paramArrayList.size()) {}
    while (bool2)
    {
      localo1 = (o)paramArrayList.get(i1);
      localx.a(localo1, q(localo1), localo2);
      i1++;
      if (!bool1) {
        break;
      }
    }
    HashMap localHashMap1 = new HashMap();
    a.c.e[] arrayOfe = localo2.t();
    z localz = new z();
    HashMap localHashMap2 = new HashMap();
    HashMap localHashMap3 = new HashMap();
    int i2 = 0;
    Object localObject1;
    Object localObject2;
    label321:
    label326:
    Object localObject3;
    Object localObject4;
    label396:
    do
    {
      if (i2 >= arrayOfe.length) {
        break;
      }
      localObject1 = arrayOfe[i2];
      localObject2 = (i_)this.H.a((a.c.e)localObject1);
      localHashMap3.put(((i_)localObject2).d(), localObject1);
      if (!bool2) {
        if (((i_)localObject2).c() != 2)
        {
          if (bool2) {
            break label326;
          }
          if (((i_)localObject2).c() != 0) {
            break label321;
          }
        }
      }
      if (!bool2)
      {
        if (localHashMap2.containsKey(((i_)localObject2).l))
        {
          ((bb)localHashMap2.get(((i_)localObject2).l)).add(localObject1);
          if (bool2) {
            continue;
          }
          if (!bool1) {}
        }
        else
        {
          localHashMap2.put(((i_)localObject2).l, new bb((a.c.e)localObject1));
          localz.add(((i_)localObject2).l);
        }
      }
      else
      {
        if (bool2) {
          continue;
        }
        if (bool1)
        {
          if (bool2) {
            continue;
          }
          if (((i_)localObject2).c() == 4)
          {
            localObject3 = ((i_)localObject2).m;
            localObject4 = (a.c.e)localHashMap1.get(localObject3);
            if (!bool2) {
              if (localObject4 != null)
              {
                a((a.c.e)localObject4, (a.c.e)localObject1, localo2, false);
                if (bool2) {
                  continue;
                }
                if (!bool1) {
                  break label396;
                }
              }
            }
            localHashMap1.put(localObject3, localObject1);
          }
        }
      }
      i2++;
    } while (!bool1);
    Iterator localIterator = localz.iterator();
    break label563;
    if (localIterator.hasNext()) {}
    label544:
    label563:
    label753:
    while (bool2)
    {
      Object localObject5;
      do
      {
        a.c.e locale;
        do
        {
          do
          {
            localObject1 = (bb)localHashMap2.get(localIterator.next());
            if (((bb)localObject1).size() < 2) {
              break;
            }
            localObject2 = (i_)this.H.a(((bb)localObject1).m());
            if ((bool2) || (bool1)) {
              break label865;
            }
            localObject3 = ((bb)localObject1).l();
            do
            {
              if (!((a.c.w)localObject3).e()) {
                break label544;
              }
              localObject4 = (i_)this.H.a(((a.c.w)localObject3).d());
              if (bool1) {
                break;
              }
              if (((i_)localObject4).n < ((i_)localObject2).n) {
                localObject2 = localObject4;
              }
              ((a.c.w)localObject3).f();
            } while (!bool1);
            localObject3 = ((i_)localObject2).g;
          } while (bool2);
          localObject4 = ((bb)localObject1).l();
          if (!((a.c.w)localObject4).e()) {
            break;
          }
          locale = ((a.c.w)localObject4).d();
        } while (bool1);
        if (locale == localObject3) {
          break label842;
        }
        localObject5 = new ab(locale.m()).l();
        do
        {
          do
          {
            if (!((m)localObject5).e()) {
              break label671;
            }
            localObject6 = ((m)localObject5).a();
            if (bool1) {
              break;
            }
            if (((a.c.d)localObject6).e() != localObject3) {
              localo2.a((a.c.d)localObject6, ((a.c.d)localObject6).e(), (a.c.e)localObject3);
            }
            ((m)localObject5).f();
          } while (!bool1);
        } while (bool2);
        localObject5 = new ab(locale.n()).l();
        do
        {
          if (!((m)localObject5).e()) {
            break label753;
          }
          localObject6 = ((m)localObject5).a();
          if (bool1) {
            break;
          }
          if (((a.c.d)localObject6).f() != localObject3) {
            localo2.a((a.c.d)localObject6, (a.c.e)localObject3, ((a.c.d)localObject6).f());
          }
          ((m)localObject5).f();
        } while (!bool1);
        localo2.a(locale);
        localObject5 = (i_)this.H.a(locale);
        localObject6 = (a.c.e)localHashMap3.get(((i_)localObject5).i);
      } while (bool2);
      if (!bool2) {
        if (localObject6 != null)
        {
          localo2.a((a.c.e)localObject6);
          if (bool2) {
            break label851;
          }
          if (!bool1) {
            break label842;
          }
        }
      }
      Object localObject6 = this.H.d(((i_)localObject5).i);
      parambb.add(localObject6);
      ((a.c.w)localObject4).f();
      if (!bool1) {
        break;
      }
    }
    label671:
    label842:
    label851:
    r(localo2);
    label865:
    return localo2;
  }
  
  private void r(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (this.L == null) {
      return;
    }
    a.c.x localx1 = db.a();
    paramo.a(a.f.c.i.c, localx1);
    a.c.x localx2 = db.a();
    paramo.a(a.f.c.i.b, localx2);
    a.c.x localx3 = db.a();
    paramo.a(a.f.c.i.d, localx3);
    paramo.a(a.f.c.i.a, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        return paramAnonymousObject;
      }
    });
    HashMap localHashMap = new HashMap();
    HashSet localHashSet = new HashSet();
    this.I.put(paramo, localHashSet);
    bb localbb = new bb(paramo.v());
    do
    {
      do
      {
        a.c.e locale1;
        Object localObject;
        do
        {
          i_ locali_;
          do
          {
            if (localbb.isEmpty()) {
              break;
            }
            locale1 = localbb.o();
            locali_ = (i_)this.H.a(locale1);
          } while ((!bool2) && ((this.w != 2) && ((!bool2) && ((locali_.c() != 0) && ((!bool2) && (locali_.c() != 1))))));
          localObject = this.L.get(locali_.l);
        } while (localObject == null);
        a.c.e locale2 = (a.c.e)localHashMap.get(localObject);
        if (!bool2)
        {
          if (locale2 == null)
          {
            locale2 = b(paramo, this.H.f(localObject));
            localHashSet.add(localObject);
            localHashMap.put(localObject, locale2);
            localx3.a(locale2, this.M.get(localObject));
            localx1.a(locale2, true);
          }
          localx2.a(locale1, locale2);
          localbb.add(locale2);
        }
      } while (bool2);
    } while (!bool1);
  }
  
  private void a(o paramo1, o paramo2, o paramo3)
  {
    b(paramo2, paramo1);
    b(paramo3, paramo1);
  }
  
  private void b(o paramo1, o paramo2)
  {
    boolean bool4 = R;
    boolean bool3 = Q;
    if (this.L != null)
    {
      if (bool4) {
        break label34;
      }
      if (a.f.c.h.b(paramo1)) {}
    }
    else
    {
      return;
    }
    label34:
    boolean bool1 = a.f.c.h.b(paramo2);
    a.c.x localx1;
    a.c.x localx2;
    a.c.x localx3;
    if (bool1)
    {
      localx1 = (a.c.x)paramo2.c(a.f.c.i.c);
      localx2 = (a.c.x)paramo2.c(a.f.c.i.b);
      localx3 = (a.c.x)paramo2.c(a.f.c.i.d);
      if (!bool4) {
        if (!bool3) {
          break label142;
        }
      }
    }
    else
    {
      localx1 = db.a();
      paramo2.a(a.f.c.i.c, localx1);
      localx2 = db.a();
      paramo2.a(a.f.c.i.b, localx2);
      localx3 = db.a();
      paramo2.a(a.f.c.i.d, localx3);
    }
    paramo2.a(a.f.c.i.a, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        return paramAnonymousObject;
      }
    });
    label142:
    HashSet localHashSet = (HashSet)this.I.get(paramo1);
    if (!bool4) {
      if (this.I.containsKey(paramo2))
      {
        if (bool4) {
          break label216;
        }
        ((HashSet)this.I.get(paramo2)).addAll(localHashSet);
        if (!bool3) {
          break label209;
        }
      }
    }
    this.I.put(paramo2, localHashSet);
    label209:
    label216:
    HashMap localHashMap = new HashMap();
    Object localObject1 = paramo2.v();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = (i_)this.H.a(((a.c.w)localObject1).d());
      localHashMap.put(((i_)localObject2).d(), ((i_)localObject2).g);
      ((a.c.w)localObject1).f();
    } while (!bool3);
    localObject1 = paramo1.c(a.f.c.i.c);
    Object localObject2 = paramo1.c(a.f.c.i.b);
    a.c.k localk = paramo1.c(a.f.c.i.d);
    a.c.w localw = paramo1.v();
    label430:
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale1 = localw.d();
      j localj1 = this.H.a(locale1);
      a.c.e locale2 = (a.c.e)localHashMap.get(localj1.d());
      boolean bool2 = ((a.c.k)localObject1).getBool(locale1);
      if (!bool4)
      {
        localx1.a(locale2, bool2);
        if (bool2)
        {
          if (bool4) {
            break label430;
          }
          if (localk != null) {
            localx3.a(locale2, localk.get(locale1));
          }
        }
      }
      a.c.e locale3 = (a.c.e)((a.c.k)localObject2).get(locale1);
      if (!bool4)
      {
        if (locale3 != null)
        {
          j localj2 = this.H.a(locale3);
          a.c.e locale4 = (a.c.e)localHashMap.get(localj2.d());
          localx2.a(locale2, locale4);
        }
        localw.f();
      }
    } while (!bool3);
  }
  
  private void s(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (this.L == null) {
      return;
    }
    a.f.c.h localh = new a.f.c.h(paramo);
    a.c.w localw = paramo.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale = localw.d();
      if (bool2) {
        return;
      }
      if (bool1) {
        break label96;
      }
      if (!bool2)
      {
        if (localh.e(locale)) {
          paramo.a(locale);
        }
        localw.f();
      }
    } while (!bool1);
    if (!bool2)
    {
      label96:
      localh.e();
      paramo.j(a.f.c.i.c);
      paramo.j(a.f.c.i.d);
      paramo.j(a.f.c.i.b);
      paramo.j(a.f.c.i.a);
    }
  }
  
  private void t(o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    HashSet localHashSet = new HashSet();
    a.c.w localw = paramo.v();
    Object localObject1;
    Object localObject2;
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        if (bool2) {
          break label95;
        }
        localObject1 = localw.d();
        localObject2 = this.H.c((a.c.e)localObject1);
        if (bool1) {
          break label94;
        }
        if (localObject2 != null) {
          localHashSet.add(localObject2);
        }
        localw.f();
      } while (!bool1);
    } while (bool2);
    localw = paramo.v();
    label94:
    label95:
    do
    {
      if (!localw.e()) {
        break;
      }
      localObject1 = (i_)this.H.a(localw.d());
      localObject2 = this.H.f(((i_)localObject1).d());
      if (!bool2)
      {
        if (localObject2 != null)
        {
          z localz;
          HashMap localHashMap;
          Object localObject4;
          Object localObject5;
          Object localObject6;
          do
          {
            localz = new z();
            localHashMap = new HashMap();
            localObject3 = ((a.c.e)localObject2).l();
            do
            {
              if (!((m)localObject3).e()) {
                break label297;
              }
              localObject4 = ((m)localObject3).a();
              localObject5 = this.H.c(((a.c.d)localObject4).a((a.c.e)localObject2));
              if (bool1) {
                break;
              }
              if (!localHashSet.contains(localObject5))
              {
                localObject6 = new k_((a.c.d)localObject4);
                if (!bool2) {
                  if (!localHashMap.containsKey(localObject6))
                  {
                    localz.add(localObject6);
                    localHashMap.put(localObject6, new ab());
                  }
                }
                ((ab)localHashMap.get(localObject6)).add(localObject4);
              }
              ((m)localObject3).f();
            } while (!bool1);
          } while (bool2);
          Object localObject3 = localz.iterator();
          do
          {
            break label391;
            if (!((Iterator)localObject3).hasNext()) {
              break;
            }
            localObject4 = (ab)localHashMap.get(((Iterator)localObject3).next());
            localObject5 = ((ab)localObject4).m();
            if (!bool2) {}
            localObject6 = ((a.c.d)localObject5).f() == localObject2 ? ((a.c.d)localObject5).e() : ((a.c.d)localObject5).f();
            a.c.e locale;
            m localm;
            a.c.d locald;
            do
            {
              locale = a(paramo, (ab)localObject4, (a.c.e)localObject6);
              localm = ((ab)localObject4).l();
              if (!localm.e()) {
                break;
              }
              locald = localm.a();
              do
              {
                if ((bool2) || (bool1)) {
                  break;
                }
              } while (bool2);
            } while (bool1);
            a(paramo, locale, ((i_)localObject1).g, locald, locald.f() == localObject2);
            localm.f();
          } while (!bool1);
        }
        localw.f();
      }
    } while (!bool1);
    label297:
  }
  
  private HashMap a(a.c.q paramq)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    HashMap localHashMap = new HashMap();
    a.c.w localw = paramq.v();
    label165:
    label176:
    label204:
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale1 = localw.d();
      i_ locali_ = (i_)this.H.a(locale1);
      a.c.e locale2 = this.H.d(locali_.i);
      if (!bool2)
      {
        if (locale2 != null)
        {
          a.c.q localq = locale2.g();
          if (!bool2) {}
          int i1 = localHashMap.containsKey(localq) ? ((Integer)localHashMap.get(localq)).intValue() : 0;
          if (!bool2) {
            if (locali_.c() != 4)
            {
              if (bool2) {
                break label176;
              }
              if (locali_.c() != 2) {
                break label165;
              }
            }
          }
          i1 += locale1.c();
          if (!bool2)
          {
            if (bool1) {
              if (bool2) {
                break label204;
              }
            }
          }
          else if (locali_.c() == 3) {
            i1 += locale2.c();
          }
          localHashMap.put(localq, new Integer(i1));
        }
        localw.f();
      }
    } while (!bool1);
    return localHashMap;
  }
  
  static void a(Object paramObject1, Object paramObject2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Object[] arrayOfObject = a(paramObject1).c();
    do
    {
      int i1 = 0;
      while (!bool1)
      {
        if (i1 >= arrayOfObject.length) {
          break;
        }
        if (!bool2)
        {
          if (!s.contains(arrayOfObject[i1]))
          {
            a.c.k localk = a(paramObject1).c(arrayOfObject[i1]);
            if (bool2) {
              continue;
            }
            if ((localk instanceof j_))
            {
              Object localObject = ((j_)localk).a(paramObject1);
              if (bool2) {
                continue;
              }
              if (localObject != null) {
                ((j_)a(paramObject2).c(arrayOfObject[i1])).a(paramObject2, localObject);
              }
            }
          }
          i1++;
        }
      }
    } while (bool2);
  }
  
  private static a.c.q a(Object paramObject)
  {
    boolean bool = R;
    if (!bool) {
      if ((paramObject instanceof a.c.e)) {
        return ((a.c.e)paramObject).g();
      }
    }
    if ((bool) || ((paramObject instanceof a.c.d))) {
      return ((a.c.d)paramObject).c();
    }
    return null;
  }
  
  static
  {
    s.add(a.f.c.i.c);
    s.add(a.f.c.i.b);
    s.add(a.f.c.i.a);
    s.add(a.f.c.i.d);
    s.add(a.f.c.i.e);
    s.add(g);
    s.add(h);
    s.add(i);
    s.add(j);
    s.add(k);
    s.add(l);
  }
  
  private class a_
    extends sc
  {
    private boolean c;
    private HashSet d;
    
    public a_(boolean paramBoolean)
    {
      this(paramBoolean, null);
    }
    
    public a_(boolean paramBoolean, HashSet paramHashSet)
    {
      this.c = paramBoolean;
      this.d = paramHashSet;
    }
    
    public a.c.e a(a.c.q paramq, a.c.e parame)
    {
      boolean bool = a.R;
      a.c.e locale = super.a(paramq, parame);
      if (!bool) {
        if (this.d != null)
        {
          if (bool) {
            break label50;
          }
          if (this.d.contains(parame)) {
            this.d.add(locale);
          }
        }
      }
      label50:
      j localj = a.this.H.a(parame);
      a.this.H.a(locale, new a.i_(locale, localj));
      if (!bool)
      {
        if (this.c) {
          a.this.H.c(locale, localj.d());
        }
        a.a(parame, locale);
      }
      return locale;
    }
    
    protected xc a(xc paramxc)
    {
      xc localxc = super.a(paramxc);
      k localk = a.this.H.a(paramxc);
      a.this.H.a(localxc, new a.e_(localxc, localk));
      return localxc;
    }
    
    protected wb a(wb paramwb)
    {
      wb localwb = super.a(paramwb);
      d locald = a.this.H.a(paramwb);
      a.this.H.a(localwb, new a.f_(localwb, locald));
      return localwb;
    }
    
    public a.c.d a(a.c.q paramq, a.c.e parame1, a.c.e parame2, a.c.d paramd)
    {
      a.c.d locald = super.a(paramq, parame1, parame2, paramd);
      c localc = a.this.H.a(paramd);
      a.this.H.a(locald, new a.g_(locald, localc));
      if (!a.R)
      {
        if (this.c) {
          a.this.H.c(locald, localc.a());
        }
        a.a(paramd, locald);
      }
      return locald;
    }
    
    public void a(a.c.q paramq1, a.c.q paramq2)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      super.a(paramq1, paramq2);
      Object[] arrayOfObject = paramq1.c();
      int i = 0;
      do
      {
        while (!bool1)
        {
          if (i >= arrayOfObject.length) {
            break;
          }
          if (!bool2)
          {
            if (!a.s.contains(arrayOfObject[i]))
            {
              a.c.k localk = paramq1.c(arrayOfObject[i]);
              paramq2.a(arrayOfObject[i], new a.j_(a.this, localk));
            }
            i++;
          }
        }
      } while (bool2);
    }
  }
  
  private class l_
  {
    private final a.i.a.n a;
    private final a.c.q b;
    private final boolean c;
    private final int d;
    private a.c.x e;
    private a.c.x f;
    private a.i.a.n g;
    private a.c.e h;
    private a.c.n i;
    
    l_(z paramz, boolean paramBoolean, int paramInt)
    {
      a.c.n localn = db.b();
      this.a = new a.i.a.n(paramz.size() * paramz.size(), localn, localn);
      this.c = paramBoolean;
      this.b = a(paramz);
      this.d = paramInt;
      if (a.this.B)
      {
        a.c.x localx = db.a();
        this.g = new a.i.a.n(this.b.j(), localx, localx);
        a.c.w localw = this.b.v();
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale = localw.d();
          this.g.a(locale, locale.c());
          localw.f();
          if ((!bool2) && (bool1)) {
            return;
          }
        } while (!bool1);
        if (!bool2) {
          this.h = ((a.c.e)this.g.a());
        }
      }
    }
    
    public int a()
    {
      return this.d;
    }
    
    private a.c.q a(z paramz)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      a.c.q localq1 = new a.c.q();
      this.e = db.a();
      this.f = db.a();
      Object localObject1 = paramz.h();
      Object localObject2;
      do
      {
        if (!((y)localObject1).e()) {
          break;
        }
        o localo = (o)((y)localObject1).j();
        if (bool1) {
          break label113;
        }
        localObject2 = localq1.i();
        this.e.a(localObject2, localo);
        this.f.a(localObject2, a.this.l(localo));
        ((y)localObject1).f();
      } while (!bool1);
      label113:
      localObject1 = localq1.t();
      this.i = db.b();
      int j = 0;
      label362:
      do
      {
        if (j >= localObject1.length - 1) {
          break;
        }
        if (bool1) {
          break label376;
        }
        localObject2 = (a.c.q)this.e.get(localObject1[j]);
        HashMap localHashMap = a.this.a((a.c.q)localObject2);
        int k = j + 1;
        do
        {
          do
          {
            if (k >= localObject1.length) {
              break label362;
            }
            a.c.q localq2 = (a.c.q)this.e.get(localObject1[k]);
            if (bool1) {
              break;
            }
            int m = localHashMap.containsKey(localq2) ? ((Integer)localHashMap.get(localq2)).intValue() : 0;
            int n = a.this.a((a.c.q)localObject2, localq2, 100);
            if ((bool2) || (m <= 0))
            {
              if (bool2) {
                continue;
              }
              if (n <= 0) {}
            }
            else
            {
              a.c.d locald = localq1.a(localObject1[j], localObject1[k]);
              this.i.a(locald, m);
              int i1 = this.f.getInt(locald.e()) + this.f.getInt(locald.f());
              int i2 = a.a(m, i1, 100) + n;
              a(locald, 200 - i2);
            }
            k++;
          } while (!bool1);
          j++;
        } while (bool2);
      } while (!bool1);
      label376:
      return localq1;
    }
    
    public void a(a.h_ paramh_)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      a.c.w localw = a.h_.access$1900(paramh_).l();
      label101:
      label121:
      do
      {
        if (!localw.e()) {
          break;
        }
        a.c.e locale = localw.d();
        o localo = (o)this.e.get(locale);
        if (!bool2) {
          if (this.c)
          {
            if (bool2) {
              break label101;
            }
            if (a.this.o(localo))
            {
              b(locale);
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label121;
              }
            }
          }
        }
        if (!bool2)
        {
          if (this.g.a(locale)) {
            this.g.d(locale, locale.c());
          }
          localw.f();
        }
      } while (!bool1);
    }
    
    public void a(a.c.d paramd, int paramInt)
    {
      boolean bool = a.R;
      if (!bool) {
        if (this.a.a(paramd))
        {
          if (bool) {
            break label44;
          }
          this.a.d(paramd, paramInt);
          if (!a.Q) {
            return;
          }
        }
      }
      label44:
      this.a.a(paramd, paramInt);
    }
    
    public a.h_ b()
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      if (!bool2) {
        if (this.b.m() == 0) {
          return null;
        }
      }
      Object localObject;
      if (!bool2) {
        if (!a.this.B) {
          localObject = (a.c.d)this.a.a();
        }
      }
      HashSet localHashSet;
      int j;
      do
      {
        return new a.h_(a.this, (a.c.d)localObject, this.e, null);
        while (!bool1)
        {
          if (this.b.h(this.h)) {
            if ((!bool1) && (this.h.c() != 0)) {
              break;
            }
          }
          if (this.g.a(this.h))
          {
            this.b.a(this.h);
            this.g.c(this.h);
          }
          this.h = ((a.c.e)this.g.a());
        }
        localObject = new bb();
        localHashSet = new HashSet();
        ((bb)localObject).add(this.h);
        localHashSet.add(this.h);
        j = 1;
      } while (bool2);
      bb localbb = new bb();
      label410:
      label419:
      label432:
      do
      {
        do
        {
          do
          {
            if (j >= this.d) {
              break;
            }
            ab localab = a(this.h);
            m localm = localab.l();
            if (localm.e()) {}
            while (bool2)
            {
              if (bool1) {
                break label432;
              }
              if (j < this.d)
              {
                a.c.d locald = localm.a();
                if (!bool2) {
                  if (!localHashSet.contains(locald.e()))
                  {
                    j++;
                    ((bb)localObject).add(locald.e());
                    localHashSet.add(locald.e());
                    localbb.add(locald.e());
                    this.a.c(locald);
                    this.b.a(locald);
                    if (bool2) {
                      break label419;
                    }
                    if (!bool1) {
                      break label410;
                    }
                  }
                }
                if (!bool2)
                {
                  if (!localHashSet.contains(locald.f()))
                  {
                    j++;
                    ((bb)localObject).add(locald.f());
                    localHashSet.add(locald.f());
                    localbb.add(locald.f());
                    this.a.c(locald);
                    this.b.a(locald);
                  }
                  localm.f();
                }
                if (!bool1) {
                  break;
                }
              }
            }
          } while (j >= this.d);
          if (!bool2)
          {
            if (localbb.isEmpty()) {
              break;
            }
            this.h = localbb.o();
          }
        } while (bool2);
      } while (!bool1);
      return new a.h_(a.this, (bb)localObject, localHashSet, this.e, null);
    }
    
    private ab a(a.c.e parame)
    {
      ab localab = new ab(parame.l());
      localab.a(new a.3(this));
      return localab;
    }
    
    public a.c.e a(a.h_ paramh_, o paramo)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      a.c.e locale1 = this.b.i();
      this.e.a(locale1, paramo);
      int j = a.h_.access$2400(paramh_, this.f, this.i);
      this.f.a(locale1, j);
      a.c.w localw = a.h_.access$1900(paramh_).l();
      label354:
      do
      {
        if (!localw.e()) {
          break;
        }
        if (bool2) {
          break label388;
        }
        a.c.e locale2 = localw.d();
        ab localab = new ab(locale2.l());
        if (bool1) {
          return locale1;
        }
        m localm = localab.l();
        do
        {
          do
          {
            if (!localm.e()) {
              break label354;
            }
            a.c.d locald1 = localm.a();
            a.c.e locale3 = locald1.a(locale2);
            if (bool1) {
              break;
            }
            if (!a.h_.access$2500(paramh_, locale3))
            {
              a.c.q localq = (a.c.q)this.e.get(locale3);
              a.c.d locald2 = locale1.c(locale3);
              int k = this.f.getInt(locale3) + j;
              int m;
              if (locald2 != null)
              {
                m = this.i.getInt(locald1) + this.i.getInt(locald2);
                this.i.a(locald2, m);
                int n = a.a(m, k, 100) + a.this.a(paramo, localq, 100);
                a(locald2, 200 - n);
                if (bool2) {
                  continue;
                }
                if (!bool1) {}
              }
              else
              {
                m = a.a(this.i.getInt(locald1), k, 100) + a.this.a(paramo, localq, 100);
                a(locald1, 200 - m);
                this.b.a(locald1, locale3, locale1);
              }
            }
            localm.f();
          } while (!bool1);
          b(locale2);
          localw.f();
        } while (bool2);
      } while (!bool1);
      if (!bool2) {
        this.h = locale1;
      }
      label388:
      return locale1;
    }
    
    private void b(a.c.e parame)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      m localm = parame.l();
      do
      {
        do
        {
          if (!localm.e()) {
            break;
          }
          this.a.c(localm.a());
          localm.f();
          if ((!bool2) && (bool1)) {
            return;
          }
        } while (!bool1);
        if (bool2) {
          break;
        }
      } while (bool2);
      if (a.this.B)
      {
        if (bool2) {
          break label100;
        }
        if (this.g.a(parame)) {
          this.g.c(parame);
        }
      }
      label100:
      this.b.a(parame);
    }
  }
  
  private class h_
  {
    private final bb a;
    private final a.c.k c;
    private final HashSet e;
    
    private h_(a.c.d paramd, a.c.k paramk)
    {
      this.c = paramk;
      this.a = new bb(paramd.e());
      this.a.add(paramd.f());
      this.e = new HashSet(this.a);
    }
    
    private h_(bb parambb, HashSet paramHashSet, a.c.k paramk)
    {
      this.c = paramk;
      this.a = parambb;
      this.e = paramHashSet;
    }
    
    private boolean a(a.c.e parame)
    {
      return this.e.contains(parame);
    }
    
    private ArrayList a()
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      ArrayList localArrayList = new ArrayList();
      do
      {
        a.c.w localw = this.a.l();
        while (!bool1)
        {
          if (!localw.e()) {
            break;
          }
          if (bool1) {
            break label74;
          }
          localArrayList.add(this.c.get(localw.d()));
          localw.f();
        }
      } while (bool2);
      label74:
      return localArrayList;
    }
    
    private bb c()
    {
      return this.a;
    }
    
    private ab d()
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      ab localab = new ab();
      a.c.w localw = this.a.l();
      label106:
      do
      {
        if (!localw.e()) {
          break;
        }
        a.c.e locale = localw.d();
        m localm = locale.n();
        do
        {
          do
          {
            if (!localm.e()) {
              break label106;
            }
            a.c.d locald = localm.a();
            if (bool1) {
              break;
            }
            if (this.e.contains(locald.f())) {
              localab.add(locald);
            }
            localm.f();
          } while (!bool1);
          localw.f();
        } while (bool2);
      } while (!bool1);
      return localab;
    }
    
    private int a(a.c.x paramx, a.c.n paramn)
    {
      boolean bool2 = a.R;
      boolean bool1 = a.Q;
      int i = 0;
      Object localObject = this.a.l();
      do
      {
        while (!bool1)
        {
          if (!((a.c.w)localObject).e()) {
            break;
          }
          i += paramx.getInt(((a.c.w)localObject).d());
          ((a.c.w)localObject).f();
        }
      } while (bool2);
      localObject = d().l();
      do
      {
        while (!bool1)
        {
          if (!((m)localObject).e()) {
            break;
          }
          if (!bool2)
          {
            if (bool1) {
              break label129;
            }
            i -= 2 * paramn.getInt(((m)localObject).a());
            ((m)localObject).f();
          }
        }
      } while (bool2);
      label129:
      return i;
    }
    
    h_(a.c.d paramd, a.c.k paramk, a.12 param12)
    {
      this(paramd, paramk);
    }
    
    h_(bb parambb, HashSet paramHashSet, a.c.k paramk, a.12 param12)
    {
      this(parambb, paramHashSet, paramk);
    }
  }
  
  static class i_
    implements j
  {
    private byte f;
    private a.c.e g;
    private Object i = null;
    private Object j;
    private int k = -1;
    private Object l = null;
    private Object m = null;
    private int n = 2147483647;
    private Object o = null;
    private h p;
    
    i_(a.c.e parame, Object paramObject1, Object paramObject2, byte paramByte, h paramh)
    {
      this.g = parame;
      this.j = paramObject1;
      this.i = paramObject2;
      this.f = paramByte;
      this.p = paramh;
    }
    
    i_(a.c.e parame, Object paramObject1, Object paramObject2, Object paramObject3, byte paramByte, h paramh)
    {
      this.g = parame;
      this.j = paramObject1;
      this.i = paramObject2;
      this.l = paramObject3;
      this.f = paramByte;
      this.p = paramh;
    }
    
    i_(a.c.e parame, Object paramObject1, Object paramObject2, Object paramObject3, h paramh)
    {
      this.g = parame;
      this.j = paramObject1;
      this.m = paramObject2;
      this.l = paramObject3;
      this.f = 4;
      this.p = paramh;
    }
    
    i_(a.c.e parame, Object paramObject1, boolean paramBoolean, Object paramObject2, h paramh)
    {
      this.g = parame;
      this.j = paramObject1;
      this.l = paramObject1;
      this.o = paramObject2;
      if (!bool)
      {
        this.p = paramh;
        if (paramBoolean)
        {
          if (bool) {
            break label94;
          }
          this.f = 1;
          if (!a.Q) {
            return;
          }
        }
      }
      label94:
      this.f = 0;
    }
    
    i_(a.c.e parame, Object paramObject1, Object paramObject2, h paramh)
    {
      this.g = parame;
      this.j = paramObject1;
      this.l = paramObject2;
      this.f = 1;
      this.p = paramh;
    }
    
    i_(a.c.e parame, j paramj)
    {
      i_ locali_ = (i_)paramj;
      this.g = parame;
      this.j = locali_.j;
      this.o = locali_.o;
      this.f = locali_.f;
      this.m = locali_.m;
      this.i = locali_.i;
      this.k = locali_.k;
      this.n = locali_.n;
      this.l = locali_.l;
      this.p = locali_.p;
    }
    
    public a.c.e a()
    {
      return this.p.f(this.l);
    }
    
    public int b()
    {
      return this.k;
    }
    
    public byte c()
    {
      return this.f;
    }
    
    public Object d()
    {
      return this.j;
    }
    
    public a.c.e e()
    {
      return this.p.d(this.i);
    }
  }
  
  static class g_
    implements c
  {
    private a.c.d f;
    private Object g;
    private Object h = null;
    private byte i;
    private h j;
    
    g_(a.c.d paramd, Object paramObject, byte paramByte, h paramh)
    {
      this.f = paramd;
      this.g = paramObject;
      this.i = paramByte;
      this.j = paramh;
    }
    
    g_(a.c.d paramd, Object paramObject1, Object paramObject2, h paramh)
    {
      this.f = paramd;
      this.g = paramObject1;
      this.h = paramObject2;
      this.j = paramh;
      this.i = 1;
    }
    
    g_(a.c.d paramd, c paramc)
    {
      g_ localg_ = (g_)paramc;
      this.f = paramd;
      this.g = localg_.g;
      this.i = localg_.i;
      this.j = localg_.j;
      this.h = localg_.h;
    }
    
    public byte b()
    {
      return this.i;
    }
    
    public Object a()
    {
      return this.g;
    }
    
    public a.c.d c()
    {
      return this.j.g(this.h);
    }
  }
  
  static class e_
    implements k
  {
    private final xc a;
    private final Object b;
    
    e_(xc paramxc, Object paramObject)
    {
      this.a = paramxc;
      this.b = paramObject;
    }
    
    e_(xc paramxc, k paramk)
    {
      this(paramxc, paramk.a());
    }
    
    public Object a()
    {
      return this.b;
    }
  }
  
  static class f_
    implements d
  {
    private wb a;
    private Object b;
    
    f_(wb paramwb, Object paramObject)
    {
      this.a = paramwb;
      this.b = paramObject;
    }
    
    f_(wb paramwb, d paramd)
    {
      this.b = paramd.a();
      this.a = paramwb;
    }
    
    public Object a()
    {
      return this.b;
    }
  }
  
  private class k_
  {
    private Object a;
    private a.c.d b;
    
    public k_(a.c.d paramd)
    {
      this.b = paramd;
      a.c.k localk = paramd.c().c(a.l);
      if (!a.R) {}
      this.a = (localk != null ? localk.get(paramd) : null);
    }
    
    public boolean equals(Object paramObject)
    {
      boolean bool = a.R;
      if (!bool) {
        if (this == paramObject) {
          return true;
        }
      }
      if (paramObject != null)
      {
        if (bool) {
          break label40;
        }
        if (getClass() == paramObject.getClass()) {}
      }
      else
      {
        return false;
      }
      label40:
      k_ localk_ = (k_)paramObject;
      a.c.e locale1 = localk_.b.e();
      a.c.e locale2 = localk_.b.f();
      if ((a.this.y & 0x2) != 0)
      {
        if ((bool) || ((locale1 != this.b.e()) || (locale2 != this.b.f()))) {
          return false;
        }
      }
      else if (((bool) || ((locale1 != this.b.e()) || ((bool) || (locale2 != this.b.f())))) && ((bool) || ((locale1 != this.b.f()) || (locale2 != this.b.e())))) {
        return false;
      }
      if (!bool) {
        if ((a.this.y & 0x4) != 0)
        {
          if (!bool)
          {
            if (this.a != null)
            {
              if (bool) {
                break label240;
              }
              if (this.a.equals(localk_.a)) {
                break label231;
              }
            }
            else
            {
              if (bool) {
                break label232;
              }
            }
          }
          else {
            if (localk_.a == null) {
              break label231;
            }
          }
          return false;
        }
      }
      label231:
      label232:
      label240:
      if (!bool) {
        if ((a.this.y & 0x1) != 0)
        {
          if ((!bool) && ((this.b != null) && (bool))) {
            break label292;
          }
          if ((!this.b.equals(localk_.b)) && ((goto 289) || (localk_.b != null))) {
            return false;
          }
        }
      }
      label292:
      return true;
    }
    
    public int hashCode()
    {
      boolean bool = a.R;
      if (!bool) {
        if ((a.this.y & 0x2) != 0)
        {
          i = this.b.e().hashCode();
          i = 31 * i + this.b.f().hashCode();
          if (bool) {
            break label163;
          }
          if (!a.Q) {
            break label159;
          }
        }
      }
      if (!bool) {}
      int j = this.b.e().f() < this.b.f().f() ? 1 : 0;
      if (!bool) {}
      int i = j != 0 ? this.b.e().hashCode() : this.b.f().hashCode();
      if (!bool) {}
      i = 31 * i + (j != 0 ? this.b.f().hashCode() : this.b.e().hashCode());
      label159:
      label163:
      if ((bool) || (this.a != null)) {
        if (bool) {}
      }
      i = 31 * i + ((a.this.y & 0x4) != 0 ? this.a.hashCode() : 0);
      if ((bool) || (this.b != null)) {
        if (bool) {}
      }
      i = 31 * i + ((a.this.y & 0x1) != 0 ? this.b.hashCode() : 0);
      return i;
    }
  }
  
  class j_
    implements a.c.k, a.c.i
  {
    private a.c.j a;
    private final a.c.k b;
    
    j_(a.c.k paramk)
    {
      if (!bool) {
        if ((paramk instanceof j_))
        {
          this.b = ((j_)paramk).b;
          if (!bool) {
            if (!a.Q) {
              return;
            }
          }
        }
        else
        {
          this.b = paramk;
        }
      }
      this.a = null;
    }
    
    Object a(Object paramObject)
    {
      if (!a.R) {
        if (this.a == null) {
          return null;
        }
      }
      return this.a.get(paramObject);
    }
    
    public void a(Object paramObject, boolean paramBoolean)
    {
      if (!a.R) {
        if (this.a == null) {
          this.a = db.c();
        }
      }
      this.a.a(paramObject, paramBoolean);
    }
    
    public void a(Object paramObject, int paramInt)
    {
      if (!a.R) {
        if (this.a == null) {
          this.a = db.c();
        }
      }
      this.a.a(paramObject, paramInt);
    }
    
    public void a(Object paramObject, double paramDouble)
    {
      if (!a.R) {
        if (this.a == null) {
          this.a = db.c();
        }
      }
      this.a.a(paramObject, paramDouble);
    }
    
    public void a(Object paramObject1, Object paramObject2)
    {
      if (!a.R) {
        if (this.a == null) {
          this.a = db.c();
        }
      }
      this.a.a(paramObject1, paramObject2);
    }
    
    public Object get(Object paramObject)
    {
      if (!a.R) {
        if (b(paramObject)) {
          return this.a.get(paramObject);
        }
      }
      return this.b.get(e(paramObject));
    }
    
    private boolean b(Object paramObject)
    {
      return (a.R) || ((this.a != null) && (this.a.get(paramObject) != null));
    }
    
    protected Object c(Object paramObject)
    {
      Object localObject = a.this.H.g(paramObject);
      if (!a.R) {
        if (localObject == null) {
          localObject = a.this.H.f(paramObject);
        }
      }
      return localObject;
    }
    
    protected Object d(Object paramObject)
    {
      boolean bool = a.R;
      if (!bool) {
        if ((paramObject instanceof a.c.e)) {
          return a.this.H.c((a.c.e)paramObject);
        }
      }
      if ((bool) || ((paramObject instanceof a.c.d))) {
        return a.this.H.a((a.c.d)paramObject).a();
      }
      return null;
    }
    
    public int getInt(Object paramObject)
    {
      if (!a.R) {
        if (b(paramObject)) {
          return this.a.getInt(paramObject);
        }
      }
      return this.b.getInt(e(paramObject));
    }
    
    public double getDouble(Object paramObject)
    {
      if (!a.R) {
        if (b(paramObject)) {
          return this.a.getDouble(paramObject);
        }
      }
      return this.b.getDouble(e(paramObject));
    }
    
    public boolean getBool(Object paramObject)
    {
      if (!a.R) {
        if (b(paramObject)) {
          return this.a.getBool(paramObject);
        }
      }
      return this.b.getBool(e(paramObject));
    }
    
    private Object e(Object paramObject)
    {
      Object localObject = d(paramObject);
      if (!a.R) {
        if (a.this.H.c(localObject) != null) {
          localObject = a.this.H.c(localObject);
        }
      }
      return c(localObject);
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.f.a

 * JD-Core Version:    0.7.0.1

 */